web-dev-qa-db-ja.com

TokuDBがinnodb_buffer_pool_%を削除すると言うのはなぜですか?

TokuDBクイックスタートガイド は、「テーブルをTokuDBに変換した後、メモリキャッシュに関連するグローバルオプション(つまり、innodb_buffer_pool%)をコメントアウトする必要があります」と述べています。

TokuDBがTokuDBとInnoDBの両方のデータベースエンジンをサポートしている場合、なぜこれらの設定をコメントアウトするのですか?

3
Thomas Johnson

その理由は、TokuDBエンジンとInnoDBエンジンの両方に重いテーブルを持たせたくないためです。

これら2つのエンジンは両方ともリソースを必要とします。どちらも、独自のスコープ内でリソースを管理することについては非常に賢明ですが、お互いについて完全に無知です。

そのため、InnoDBは複数のクエリ実行間でI/Oを調整できますが、TokuDBが同時に何らかの方法でディスクを使用する可能性があることを認識していません。

特に、「テーブルをTokuDBに変換した後、メモリキャッシュに関連するグローバルオプション(つまり、innodb_buffer_pool%)をコメントアウトする必要があります。」 InnoDBにOSで使用可能なメモリのほとんどを提供するという規則に関連しています。このような場合、TokuDBを操作するためのメモリはほとんどまたはまったく残りません。

両方のエンジンに大きなテーブルがある状況は望ましくなく、両方のエンジンのパフォーマンスが低下する可能性があります。小さな、頻繁にアクセスされないInnoDBテーブルに、メモリの割り当てを少なくしておくのは問題ありません。

3
Shlomi Noach

いくつかのデフォルトが望ましくない場合に備えて、それらすべてをコメントアウトすることに注意します。

たとえば、MyISAMテーブルとTokuDBテーブルが混在しているため、それぞれに同じ設定を構成し、それらを共存させる必要があることを認識しています(つまり、myisamキーキャッシュサイズ、tokudbキャッシュサイズ)。

0
Phil Sweeney