MySQLクエリキャッシュの簡単な使い方の詳細な説明

MySQLクエリキャッシュの簡単な使い方の詳細な説明

MySQL は、スウェーデンの会社 MySQL AB によって開発されたリレーショナル データベース管理システムであり、Oracle の製品です。 MySQL は、最も人気のあるリレーショナル データベース管理システムの 1 つです。WEB アプリケーションに関して言えば、MySQL は最高の RDBMS (リレーショナル データベース管理システム) アプリケーション ソフトウェアの 1 つです。

MySQL クエリ キャッシュをオンにすると、まったく同じ SQL ステートメントを実行するときに、サーバーは結果をキャッシュから直接読み取ります。データが変更されると以前のキャッシュは無効になるため、頻繁に変更されるテーブルはクエリ キャッシュには適していません。

1. クエリキャッシュの実装プロセス

2. クエリキャッシュを構成する

1. 現在のMySQLデータベースがクエリキャッシュをサポートしているかどうかを確認する

'have_query_cache' のような変数を表示します。 

2. MySQLでクエリキャッシュが現在有効になっているかどうかを確認する

'query_cache_type' のような変数を表示します。 

3. クエリキャッシュのサイズを確認する

'query_cache_size' のような変数を表示します。 

4. クエリキャッシュのステータス変数を表示する

'Qcache%' のようなステータスを表示します。 

パラメータ意味
Qキャッシュ空きブロッククエリキャッシュ内の空きメモリブロックの数
Qキャッシュ空きメモリクエリキャッシュに使用可能なメモリ量
Qキャッシュヒットクエリキャッシュヒット数
Qcache_挿入クエリキャッシュに追加されたクエリの数
Qcache_lowmen_prunesメモリ不足のためクエリキャッシュから削除されたクエリの数
Qキャッシュがキャッシュされていないキャッシュされなかったクエリの数(キャッシュできなかった、または query_cache_type 設定によりキャッシュされなかったクエリ)
Qcache_queries_in_cacheクエリキャッシュに登録されたクエリの数
Qキャッシュ合計ブロック数クエリキャッシュ内のブロックの総数

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

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

価値意味
オフまたは0クエリキャッシュが無効です
ONまたは1クエリ キャッシュ機能がオンになっています。SELECT の結果は、キャッシュ条件を満たしている場合はキャッシュされます。そうでない場合はキャッシュされません。SQL_NO_CACHE が明示的に指定されている場合はキャッシュされません。
需要または2クエリ キャッシュ機能は要求に応じて実行されます。SQL_CACHE を明示的に指定する SELECT ステートメントのみがキャッシュされ、その他はキャッシュされません。

1. usr/my.cnf で設定します (設定ファイルは /etc/my.cnf にある場合もあります)

2. サービスを再起動する

サービスmysqlの再起動

3. テスト


4. クエリキャッシュのSELECTオプション

SELECT ステートメントで指定できるクエリ キャッシュに関連するオプションは 2 つあります。

  • SQL_CACHE : クエリ結果がキャッシュ可能であり、query_cache_type システム変数の値が ON または DEMAND の場合、クエリ結果をキャッシュします。
  • SQL_NO_CACHE: サーバーはクエリ キャッシュを使用しません。クエリ キャッシュをチェックしたり、結果がすでにキャッシュされているかどうかをチェックしたり、クエリ結果をキャッシュしたりしません。
顧客からSQL_CACUE id、nameを選択します。
顧客からSQL_NO_CACHE id、nameを選択します。

5. クエリキャッシュの失敗

1. 一貫性のないSQL文

キャッシュにヒットするには、クエリSQL文が一貫している必要があります。

SQL1: tb_itemからcount(*)を選択します。
SQL2: tb_Itemからcount(*)を選択します。

2. クエリステートメントに不確実な値が含まれています

SQL1: select * from tb_item where updatetime < now() limit 1;
SQL2:ユーザーを選択します();
SQL3:データベースを選択します();

3. テーブルクエリステートメントを使用しない

「A」を選択します。

4. mysql、information_schema、performance_schemaデータベースのテーブルをクエリする

information_schema.engines から * を選択します。

5. ストアドファンクション、トリガー、またはイベント本体内で実行されるクエリ

タイトル通り

6. テーブルの変更によりキャッシュが削除される

テーブルが変更されると、そのテーブルを使用するすべてのキャッシュされたクエリが無効になり、キャッシュから削除されます。これには、変更されたテーブルにマップされているテーブルに対して MERGE を使用するクエリが含まれます。テーブルは、INSERT、UPDATE、DELETE、TRUNCATE TABLE、ALTER TABLE、DROP TABLE、DROP DATABASE など、さまざまな種類のステートメントによって変更できます。

上記はMySQLクエリキャッシュの簡単な使用法のまとめです。

これで、MySQL クエリ キャッシュの簡単な使用法に関するこの記事は終了です。MySQL クエリ キャッシュの使用法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQLクエリキャッシュに関するヒント
  • MySQL キャッシュのクエリおよびクリアコマンドの詳細な説明
  • MySQLクエリキャッシュメカニズムの基礎学習チュートリアル
  • MySQLクエリキャッシュをクリアする方法
  • MySQLクエリキャッシュの説明
  • mysql クエリ キャッシュの設定

<<:  XHTML ドキュメントで JavaScript と CSS を正しく使用する方法

>>:  タイプライター効果を実現する純粋な js

推薦する

HTML/CSS の基礎 - HTML コード記述におけるいくつかの注意事項 (必読)

この記事の警告事項は、ブラウザの互換性とはまったく関係ありません。主に、プロジェクトで遭遇したいくつ...

Centos7 での python3 のインストールとアンインストールに関するチュートリアル

1. Python 3をインストールする1. 依存パッケージをインストールしますyum instal...

MySQL グラフィカル管理ツール Navicat のインストール手順

目次序文1. 全員にインストールパッケージを用意する2. Navicatをインストールし、Navic...

shtml includeの使い方

これを応用することで、ウェブサイトの一部の公開領域を独立したページにすることができ、その後、この技術...

CocosCreatorを使ってシューティングゲームを作る方法

製造手順を分析します。 1. リソースを準備してシーンを構築するオンラインでリソースを探すか、私のリ...

MySQLでデータをエクスポートするいくつかの方法の詳細な説明

MySQL データをエクスポートする目的は、データベースのバックアップ、テーブル構造のエクスポート、...

CSSは複数の要素をボックスの両端に揃える効果を実現します

要素の両端を揃える配置レイアウトは、実際の開発のいたるところで見られます。これは、フレックスレイアウ...

JS を使用して HTML で回転するクリスマスツリーを実装する

<!DOCTYPE ヘムル パブリック> <html> <ヘッド&g...

Workermanはmysql接続プールのサンプルコードを書きます

まず、接続プールを使用する理由と、接続プールによってどのような問題が解決できるかを理解する必要があり...

mysql8.0 でユーザーを作成して権限を付与する際のエラーの解決方法の詳細な説明

質問1:エラーを報告する書き込み方法: GRANT OPTION を使用して、'123123...

ドメイン名を nginx サービスにバインドする方法

nginx.conf で複数のサーバーを設定します。 http リクエストを処理する際、nginx ...

grpc のリバース プロキシとして nginx を使用する場合の落とし穴の概要

背景ご存知のとおり、nginx は高性能な Web サーバーであり、負荷分散やリバース プロキシによ...

既存のMySQLデータベースの文字セットを統一する方法

序文データベースでは、一部のデータ テーブルとデータは latin1 であり、一部のデータ テーブル...

MySQL スロークエリログの役割と公開

序文MySQL スロー クエリ ログは、MySQL が提供するログ レコードの一種です。これは、応答...

Vue プロジェクトにおけるトランジション コンポーネントの適用の概要

​Vue のトランジションは、アニメーション トランジションをカプセル化するコンポーネントです。一般...