1

データベースを調整するために mysqltuner を実行していますが、非常に奇妙な現象が発生しています。

データベース全体が MyISAM (すべてのテーブル) ですが、次のように表示されます。

[!!] InnoDB data size / buffer pool: 403.1M/128.0M

データベースのデフォルトのストレージ エンジンは InnoDB (すべてのテーブルが MyISAM であっても) だったので、それが何らかの問題を引き起こしているのではないかと考えましたが、default-storage-engine の値を MyISAM に変更しても、まったく同じ InnoDB 関連の警告が表示されます。 mysqltuner で。

では、なぜこれが起こっているのでしょうか。どうすれば修正できますか? そもそも InnoDB を使用していないときは、InnoDB のバッファー プールで 400M を無駄にしたくありません。

注: ここで私がしようとしているのは、MyISAM VS InnoDB の古くからの質問について議論することではありません。使用していないのに InnoDB が私のリソースを消費している理由を理解する必要があるだけです。

4

1 に答える 1

1

明確化: 「データ サイズ」は「バッファ プール」ではありません。

データ サイズは、ディスク上のデータベース ファイルのサイズです。innodb_data_file_pathサーバーオプションで設定できます。

バッファー プールは、InnoDB テーブルのデータとインデックスのバッファーとして使用されるメモリ (RAM) スペースです。その構成オプションはinnodb_buffer_pool_size.


まず、インスタンスに InnoDB テーブルがまったくないことを確認します。

SELECT * FROM information_schema.tables WHERE engine='InnoDB';

次に、実際に InnoDB テーブルがない場合は、InnoDB テーブルスペースを最初から再構築できます(テーブルスペースを削減する唯一の方法です。これは、MySQL に欠けている面倒な機能です)。InnoDB テーブルがある場合でも、テーブルスペースを再構築して、未使用のスペースを再利用できます (詳細については、この回答も参照してください)。

innodb_buffer_pool_size5 MB 未満は設定できないことに注意してください。ただし、オプションを使用して InnoDB を完全に (そのバッファーと共に) 無効にすることができskip-innodbます。

于 2013-08-19T14:12:49.293 に答える