1. はじめに table_cache は非常に重要な MySQL パフォーマンス パラメータであり、バージョン 5.1.3 以降では table_open_cache と呼ばれます。 table_cache は主にテーブルキャッシュの数を設定するために使用されます。各クライアント接続は少なくとも 1 つのテーブルにアクセスするため、このパラメータの値は max_connections に関連しています。 2. キャッシュメカニズム 接続がテーブルにアクセスすると、MySQL は現在キャッシュされているテーブルの数をチェックします。テーブルがキャッシュ内で開かれている場合は、クエリを高速化するためにキャッシュ内のテーブルに直接アクセスされます。テーブルがキャッシュされていない場合は、現在のテーブルがキャッシュに追加され、クエリが実行されます。 キャッシュ操作を実行する前に、table_open_cache を使用してキャッシュ テーブルの最大数を制限します。現在キャッシュされているテーブルが table_open_cache に達していない場合は、新しいテーブルが追加されます。この値に達した場合、MySQL は最後のクエリ時間、クエリ レート、およびキャッシュ テーブルのその他のルールに基づいて以前のキャッシュを解放します。 MySQL がテーブルにアクセスするたびに、テーブル バッファに空きがあれば、テーブルが開かれ、そこに配置されるため、テーブルの内容に高速にアクセスできます。 3. 判断方法 ピーク時のステータス値 Open_tables と Opened_tables を確認することで、table_open_cache の値を増やす必要があるかどうかを判断できます。 open_tables が table_open_cache と等しく、opened_tables が増加している場合は、table_open_cache の値を増やす必要があります (上記のステータス値は、SHOW GLOBAL STATUS LIKE 'Open%tables' を使用して取得できます)。 table_open_cache を盲目的に大きな値に設定することはできないことに注意してください。設定値が高すぎると、ファイル記述子が不足し、パフォーマンスが不安定になったり、接続に失敗したりする可能性があります。 開いているテーブル / 開いているテーブル >= 0.85 オープンテーブル / テーブルキャッシュ <= 0.95 4. 提案 最初はよくわからない場合は、MySQL データベースを一定期間本番環境に置き、その後パラメータ値を Opened_tables の値より大きくなるように調整し、比較的負荷が高い極端な状況でも Opened_tables よりわずかに大きい値であることを確認します。 mysql>flush tables; open_tables をクリアできます # service mysqld restart は opened_tables をクリアできます 以下はMySQL 5.6の手順です table_open_cache はテーブル キャッシュのサイズを指定します。 MySQL がテーブルにアクセスするたびに、テーブル バッファに空きがあれば、テーブルが開かれ、そこに配置されるため、テーブルの内容に高速にアクセスできます。 テスト環境: Tencent Cloud CDB、メモリ 4000M、コンソールで table_open_cache=512 を確認し、table_open_cache 設定が適切かどうか、最適化する必要があるかどうかを監視します。 '%table_open_cache%' のような変数を表示します。 「Open%tables」のようなグローバルステータスを表示します。 open_tables が table_open_cache と等しく、両方とも 512 であることがわかりました。これは、MySQL が新しいテーブルを収容するためにキャッシュされたテーブルを解放していることを示しています。この時点で、table_open_cache の値を増やす必要がある場合があります。4G メモリを搭載したマシンの場合は、2048 に設定することをお勧めします。 より適切な値: 開いているテーブル / 開いているテーブル >= 0.85 このパラメータについて確信が持てない場合は、非常に保守的な設定の提案があります。MySQL データベースを本番環境に一定期間配置して試用し、パラメータ値を Opened_tables の値よりも大きくなるように調整し、比較的負荷が高い極端な状況でも Opened_tables よりもわずかに大きいことを確認します。 以下もご興味があるかもしれません:
|
<<: Kubernetes オブジェクトボリュームの詳細な使用方法
>>: Mac VMware Fusion CentOS7 静的 IP 構成チュートリアル図
展開環境:インストールバージョン Red Hat Cent 7.0 MYSQL バージョン 8.0....
最近、プロジェクトではラベルやボタンなどの断片的な画像をたくさん使用する必要があります。また、CSS...
目次序文 - Vue ルーティング1. 最も基本的なルーティング構成1. router/index....
ドキュメントの範囲この記事では、Firefox やその他の Gecko ベースのブラウザ、Safar...
フロントエンド開発者の必須科目であるCSS3は、多くの基本的なアニメーション効果を実現するのに役立ち...
目次レスト演算子とは何ですか? JavaScript 関数では REST 演算子はどのように機能しま...
ミニプログラムページ間で値を渡すみなさんこんばんは。こんばんはと言うのは、これを夜に書いたからです。...
序文ヒント: ここで、この記事に記録するおおよその内容を追加できます。例えば、人工知能の継続的な発展...
SQL 左結合、右結合、内部結合、自然結合 さまざまな結合の概要SQL には、左結合、右結合、内部結...
歴史は常に驚くほどうまく繰り返される。西洋建築とウェブデザインは、どちらも工学と芸術の組み合わせです...
ソース ファイルを右クリックすると、次のコードが見つかります。 1. CSSを使用してFirefox...
1. コマンドの紹介seq (シーケンス) コマンドは、指定されたステップ サイズに従って、開始番号...
この記事で説明する等幅レイアウトでは、純粋な CSS を使用して、要素の幅を手動で設定することなく、...
IIS7 では、「URL REWRITE2」疑似静的モジュールがインストールされているかどうかを確...
目次1. ブロックスコープとは何ですか? 2. ブロックスコープが必要なのはなぜですか? 3. 関数...