InnoDBデータベースを公開する前に知っておくべきことは何ですか?


10

InnoDBデータベースを使用可能にする前に、サーバー管理者またはDB管理者が知っておくべきことは何ですか。

私は正しい値を設定するようなものを考えているinnodb_buffer_pool_sizeと、innodb_log_file_size

それで、データベースを使用するアプリケーションが最適に機能しない原因となる、簡単な設定を忘れてしまうことはありますか?

回答:


14

開始する前に検討すべき構成オプションがいくつかあります。

myisamをまったく使用しない限り、ほとんどすべてのmax_connectionsメモリを安全に割り当てることができます(OSが快適に動作するのに十分な量を維持し、メモリを十分に確保できます)innodb_buffer_pool。InnoDBの優れている点は、ほとんどすべてのメモリを単独で処理できることです。クエリキャッシュやキーバッファなどを分離する必要はありません。

を有効にすることをお勧めします。innodb_file_per_tableこれは、ファイルシステムを参照して、さまざまなテーブルやデータベースに必要なスペースを確認するだけの方がはるかに簡単になるためです。InnoDBの内部使用には汎用のibdataファイルが必要ですが、それをとして定義できます10M:autoextend。事前に割り当てられたサイズでさまざまなinnodbデータファイルを定義する必要はありません。

innodb_log_file_sizeそしてinnodb_log_buffer_sizeあなたが大規模なものをたくさん持っている場合組み合わせは10回あなたの最大のBLOBオブジェクトよりも大きくする必要があります。そうしないと(そして、あなたは[てはならない12 ])、それを多くのことを気にする必要は本当にありません。計算方法の詳細なレポートについては、MySQL Performance Blogを確認してください。

また、MySQLをしばらく実行している場合は、MySQLTunerまたはMySQL Tuning Primerで設定を確認してください。

より詳細なレポートについては、mysqlreportを試し、ライブモニタリングについてはmytopを確認してください


innodb_file_per_tableについて覚えておくべきことの1つは、ディスク領域を回復するために使用される方法が異なることです。ibdataファイルを使用すると、テーブルの末尾を削除して、テーブルスペースのスペースを回復できます。個々のテーブルファイルのスペースが削除によって回復されない場合、ファイルシステムにスペースを返すために最適化テーブルでテーブルを再構築する必要があります。Optimizeはテーブルをロックするため、アプリケーションでダウンタイムが発生する可能性があります。
mtinberg、2009年

2

私にとってわずかな「驚き」は、innodbがデフォルトですべてのデータベース/テーブルに1つのファイルを使用することでした。データベースごとにディレクトリを使用し、テーブル/テーブルインデックスごとにファイルを使用するMyISAMテーブルとは対照的です。

物理ファイルをテーブル単位で縮小することに慣れている場合は、問題になる可能性があります(テーブルxxxを最適化)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.