web-dev-qa-db-ja.com

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

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

innodb_buffer_pool_sizeinnodb_log_file_sizeに正しい値を設定するなどのことを考えています。

では、データベースを使用するアプリケーションの動作が最適でなくなるような、構成を忘れることができる簡単なことは何でしょうか。

10
Jacco

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

Myisamをまったく使用していない限り、ほとんどすべてのメモリをmax_connectionsに安全に割り当てることができます(OSを快適に実行するのに十分であり、innodb_buffer_poolに十分です)。 InnoDBの良いところは、ほとんどすべてのメモリを単独で処理することです。クエリキャッシュ、キーバッファなどを分離する必要はありません。

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

innodb_log_file_sizeinnodb_log_buffer_sizeの合計は、大きなblobオブジェクトが多数ある場合、最大のblobオブジェクトの10倍より大きくなければなりません。そうしない場合(そして[ 12 ]すべきではない)、実際にはそれほど気にする必要はありません。計算方法の詳細なレポートについては、 MySQL Performance Blog を確認してください。

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

より詳細なレポートについては、 mysqlreport を試してください。ライブ監視については、 mytop を確認してください。

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

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

2
nos