MySQLでクエリキャッシュを実行する方法と失敗を解決する方法

MySQLでクエリキャッシュを実行する方法と失敗を解決する方法

関数を使用する前にパラメータのプロパティを理解して、関数の使い方をより深く理解する必要があることは誰もが知っています。クエリ キャッシュについて学習した後、実際の操作の次のステップに直接進む友人もいます。ここで編集者は、操作を開始する前にパラメータを設定する必要があることを全員に思い出させたいと思います。そうしないと、問題が発生します。 MySQL クエリ キャッシュの手順とキャッシュ無効化の分析を詳しく見てみましょう。

1. 構成パラメータ

(1) have_query_cacheはクエリキャッシュがサポートされているかどうかを示します。YESはサポートを示します

(2)query_cache_typeはキャッシュタイプを示します。OFFはクエリキャッシュをオフにすることを意味し、ONはクエリキャッシュをオンにすることを意味し、DEMANDはユーザー定義のクエリキャッシュを意味します。

(3)query_cache_limitは、単一のクエリSQL文でサポートされるデータの最大量を示します。

(4)query_cache_min_res_unitはクエリキャッシュの最小単位を示す

(5)query_cache_sizeはクエリキャッシュスペースのサイズを示す

(6) query_cache_wlock_invalidateは、クエリキャッシュが書き込みロックをサポートしているかどうかを示します。OFFはサポートしていないことを意味し、データの読み取りでは書き込みロックは考慮されません。ONはサポートしていることを意味し、データの読み取りは書き込みロックによってブロックされます。

MySQL のクエリ キャッシュはデフォルトで無効になっています。クエリ キャッシュを有効にするには、パラメータ クエリ キャッシュ タイプを手動で構成する必要があります。クエリ キャッシュ タイプ パラメータには、次の 3 つの値を指定できます。

1) OFF または 0: クエリ キャッシュ機能は無効です。

2) ON または 1: クエリ キャッシュ機能がオンになります。SELECT 結果は、キャッシュ条件を満たす場合にキャッシュされます。それ以外の場合はキャッシュされません。SQL_NO_CACHE が指定されている場合は、キャッシュされません。

3) DEMAND または 2: クエリ キャッシュ機能は要求に応じて実行されます。SQL_CACHE を明示的に指定する SELECT ステートメントのみがキャッシュされ、その他はキャッシュされません。

/usr/my.cnf 設定に次の設定を追加します。

2. MySQLクエリキャッシュを有効にする

クエリキャッシュタイプ=1

設定が完了したら、サービスを再起動して有効にします。

次に、コマンドラインで SQL ステートメントを実行して検証します。時間のかかる SQL ステートメントを実行し、それを複数回実行して、それ以降の実行時間を確認します。クエリ キャッシュのキャッシュ ヒット数を取得して、クエリ キャッシュを使用するかどうかを判断します。

クエリキャッシュの使用

(1) 同じ文字列等価性を持つクエリSQL文のみが同じキャッシュを使用します。つまり、select name from cityとSELECT name FROM cityは同じキャッシュを使用しません。

(2) query_cache_type が ON の場合、すべてのクエリはデフォルトでキャッシュを使用します。sql_no_cache を使用すると、クエリがキャッシュを使用しないことを明示的に指定できます。

cityからsql_no_cache名を選択します。

(3) query_cache_typeがDEMANDの場合、sql_cacheを使用してクエリがキャッシュを使用することを指定する必要があります。

cityからsql_cache名を選択します。

3. キャッシュの無効化:

テーブルの構造またはデータが変更されると、クエリ キャッシュ内のデータは有効ではなくなります。 INSERT、UPDATE、DELETE、TRUNCATE、ALTER TABLE、DROP TABLE、DROP DATABASE などの操作を行うと、キャッシュされたデータが無効になります。したがって、クエリ キャッシュは、多数の同一クエリを実行するアプリケーションには適していますが、大量のデータ更新を実行するアプリケーションには適していません。

テーブル データのいずれかの行が変更されると、テーブルに関連するすべてのキャッシュが直ちに無効になります。

上記は、MySQL でクエリ キャッシュを実行するために必要な手順です。パラメータ設定についてもう一度おさらいしておきたいと思います。キャッシュが無効な場合は心配せず、エディターの分析に従って解決策を探してください。

以下もご興味があるかもしれません:
  • MySQLクエリキャッシュに関するヒント
  • MySQL クエリ キャッシュとバッファ プール
  • MySQLクエリキャッシュメカニズムの基礎学習チュートリアル
  • MySQLクエリキャッシュをクリアする方法
  • MySQLクエリキャッシュの説明
  • mysql クエリ キャッシュの設定

<<:  Kylin V10 への zabbix-agent のインストール手順

>>:  相対幅を使用してテーブルのサイズを変更する際の問題

推薦する

Docker: /etc/default/docker の DOCKER_OPTS パラメータを変更しても反映されない

デフォルトでは、 /etc/default/docker 設定は有効になりません。docker 環境...

jQueryは画像追従効果を実現します

この記事では、画像フォロー効果を実現するためのjQueryの具体的なコードを参考までに紹介します。具...

Linux システムを起動時に自動的にスクリプトを実行するように設定する方法の例

序文みなさんこんにちは。私は梁旭です。職場では、システムの起動後にスクリプトやサービスを自動的に開始...

MySQLのカバーインデックスに関する知識ポイントのまとめ

インデックスにクエリする必要があるすべてのフィールドの値が含まれている(またはカバーしている)場合、...

Vue2.x および Vue3.x のカスタム命令の使用方法とフック関数の原理を理解する

目次Vue2.x の使用法グローバル登録部分登録使用フック機能フック関数のパラメータVue3.x の...

Nginx でバージョン番号を隠したり偽造したりする方法

1. デフォルトでアクセスするには、curl コマンドを使用します。 # curl -I http:...

Windows Server2014 にセキュリティを適用して MySQL をインストールする際のエラーに対する完璧な解決策

理由はインストール後にきちんとアンインストールされなかったためです。この問題を解決するには、次の点に...

DockerにRedisをインストールし、パスワードを設定して接続する方法

Redis は分散キャッシュ サービスです。キャッシュは、大規模システムの開発やパフォーマンスの最適...

スクロール時に選択領域のフォント色を暗くするために CSS を使用するサンプルコード

日付ピッカーをカプセル化する場合、選択時にフォントの色を暗くする必要があります。実装後の効果を見てみ...

MySQL の全体的なアーキテクチャの紹介

MySQL の全体的なアーキテクチャは、サーバー層とストレージ エンジン層に分かれています。サーバー...

優れた UI (ユーザー インターフェース) デザイナーになるための 20 の道標

はじめに: インターフェイス デザイナーの Joshua Porter が自身のブログでこの記事を公...

MySQL が uuid または snowflake id を主キーとして使用することを推奨しない理由の詳細な分析

前書き: MySQL でテーブルを設計する場合、MySQL では UUID や非連続かつ非繰り返しの...

Docker Compose ワンクリック ELK デプロイ方式の実装

インストールFilebeat は、より軽量でより安全なため、Logstash-Forwarder に...

MySQL と Golan 間の従来の分散トランザクションのための 7 つのソリューション

目次1. 基本理論1.1 取引1.2 分散トランザクション2. 分散トランザクションソリューション2...