月別アーカイブ: 2015年12月




MySQLでtable_definition_cacheの値を変更する




投稿日:

MySQLには、table_definition_cacheというパラメーターがあります。

英語ですが詳細はこちらに記載されています。

通常のテーブルキャッシュとは違い、ファイルディスクリプタを使わずにテーブル定義だけをキャッシュするのでスペースもとらず、テーブルが多いほどに有効です。デフォルトは、MySQL5.6.8までは400です。

数値は、400 + (table_open_cache / 2) が良いとされています。今回はこの値の変更をしてみます。

現在の状態確認

[html]
mysql> show variables like ‘table_definition_cache’;
+————————+——-+
| Variable_name | Value |
+————————+——-+
| table_definition_cache | 400 |
+————————+——-+
1 row in set (0.00 sec)
[/html]

変更

[html]
mysql> SET GLOBAL table_definition_cache=1024;
[/html]

反映確認

[html]
mysql> show variables like ‘table_definition_cache’;
+————————+——-+
| Variable_name | Value |
+————————+——-+
| table_definition_cache | 1024 |
+————————+——-+
1 row in set (0.00 sec)
[/html]

これでは再起動でmy.cnfの値に戻るので、問題なければ合わせてmy.cnfにも記述しましょう。