まず、これらのステータス変数を考えてみましょう。
Open tables:開いているテーブルの数。
Opened_tables:開かれたテーブルの数。Opened_tablesが大きい場合、おそらくtable_open_cacheの値が小さすぎます。
驚くべきことに、あなたの質問に対する答えは質問自体の中にあります。
2つの変数は、もう1つのステータス変数をミックスに投入する場合にのみ意味があります:Uptime(またはFLUSH STATUSの後の新鮮な平均のUptime_since_flush ステータス)。
Open_tables agsinst (Opened_tables / Uptime)を比較する必要があります。Open_tablesが(Opened_tables / Uptime)を上回った場合、懸念の原因があり、次のようなことに注意を向ける必要があります。
更新2011-08-31 12:18 EDT
また、Uptimeの代わりにUptime_since_flush_statusを使用して、特定の期間のOpened_tables成長の修正パターンを取得することを提案した理由に注意してください。
たとえば、FLUSH STATUS;
毎週月曜日の真夜中に実行する場合、OpenTableFactorを生成できます。
SELECT *, (Open_tables * Uptime / Opened_Tables) OpenTableFactor FROM
(SELECT variable_value Uptime FROM information_schema.global_status
WHERE variable_name = 'Uptime_since_flush_status') up,
(SELECT variable_value Open_tables FROM information_schema.global_status
WHERE variable_name = 'Open_tables') opn,
(SELECT IF(variable_value=0,1,variable_value) Opened_tables
FROM information_schema.global_status
WHERE variable_name = 'Opened_tables') opnd;
このオープンテーブルファクターは、特定の期間全体のオープンテーブルの平均数に対する、特定の瞬間のオープンテーブルの数を表す数になります。とともにFLUSH HOSTS;
毎週/毎日/ホスト、その平均は週/日/時反対しています。
これは私の雇用主のクライアントの1つからのサンプルです。
mysql> SELECT *, (Open_tables * Uptime / Opened_Tables) OpenTableFactor FROM (SELECT variable_value Uptime FROM information_sc hema.global_status WHERE variable_name = 'Uptime_since_flush_status') up, (SELECT variable_value Open_tables FROM informat ion_schema.global_status WHERE variable_name = 'Open_tables') opn, (SELECT IF(variable_value=0,1,variable_value) Opened_ta bles FROM information_schema.global_status WHERE variable_name = 'Opened_tables') opnd;
+----------+-------------+---------------+-------------------+
| Uptime | Open_tables | Opened_tables | OpenTableFactor |
+----------+-------------+---------------+-------------------+
| 14385123 | 16326 | 30429078 | 7717.996519579068 |
+----------+-------------+---------------+-------------------+
1 row in set (0.00 sec)
このクライアントは通常、最大で約7745 OpenTableFactorを維持します。OpenTableFactorが(少しでも)突然低下した場合、トラフィックパターンの低下、中断の多い接続などを示している可能性があります。OpenTableFactorが(少しでも)変更されない場合、これらの設定を変更する機会があります。
調整されると、OpenTableFactorは絶えず変化するか、別の天井または台地にぶつかる可能性があります。したがって、この種のチューニングには、ステータス変数内で異なるユニットを使用することが重要になります。
更新2011-08-31 12:42 EDT
OpenTableFactorに対して実行したSQLクエリは、MySQL 5.0以降では機能しません。MySQL AdministratorまたはMONyogを使用している場合、クエリおよびモニターの式を使用してグラフをカスタマイズできます。MONyogは、SQLLiteを使用して履歴を収集し、後で履歴グラフを作成します。これは、MySQLのどのバージョンでも実行できます。