ホームページ >データベース >mysql チュートリアル >MySQL のクエリ キャッシュに関する基本的な知識は何ですか?
MySQL クエリ キャッシュは、MySQL 5.7 で非推奨になりました (8.0 では削除されました) が、以前に実行されたステートメントをメモリに保存します。つまり、クエリ キャッシュは通常、データベースのメモリ中央に SELECT ステートメントを保存します。したがって、クエリを実行し、しばらくしてからまったく同じクエリを再度実行すると、結果はディスクからではなくメモリから取得されるため、より速く返されます。
クエリ キャッシュはクエリと結果セットをキャッシュします。したがって、同じクエリを実行すると、クエリのキャッシュされた結果がすぐに返されます。クエリ キャッシュ サイズは、query_cache_size システム変数を設定することで制御できますが、次の点に注意してください。クエリでクエリ キャッシュを使用する場合、クエリはバイトごとに同一である必要があります。これは、これら 2 つのクエリをまったく同じ方法でキャッシュする必要があると考えている場合でも、次のことを意味します。 demo_table where column = 'Demo';
実際には、そうではありません。 MySQL クエリ キャッシュですべてのクエリが同一であることが必要な場合、たとえ 1 バイトだけ異なっていても結果は返されません。
つまり、要約すると、MySQL がステートメントを実行するときに最初に行うことは、クエリ キャッシュが有効になっているかどうかを確認することです (復習が必要な場合は、遅い MySQL クエリに関する以前のブログの記事に戻ってください。) ) クエリ キャッシュが有効な場合、MySQL はまずクエリに関連する一致があるかどうかを確認し、一致しない場合は次のステップに進みます。重複した一致がある場合、MySQL はクエリ キャッシュから結果を返します。 MySQL 内部クエリ キャッシュ
マッチに戻る前に、MySQL のクエリ キャッシュは MySQL の確認を必要とします。 d OES このユーザーはそのようなアクションを完了するために必要な権限を持っていますか?クエリの実行を拒否する必要がありますか?
MySQL がチェックする権限のリストは次のとおりです:
権限
ALL | |
---|---|
| SELECT|
| UPDATE|
| SHOW DATABASES|
| USAGE|
|
にはさらに多くの権限がありますが、ご理解いただけたでしょうか。 MySQL はテーブル関連の情報をキャッシュされたクエリとともに保存するため、クエリのキャッシュには権限が重要です。権限は、MySQL の結果チェック プロセスの最初の段階の 1 つであるため、同様に重要です。すべての仕組みは次のとおりです。 |
優先度の識別
#1 | MySQL はクエリ キャッシュ内の権限をチェックしています。 | |
---|---|---|
#2 | MySQL はクエリ自体のクエリ キャッシュをチェックしています。 | 次に、MySQL はクエリ キャッシュに同じクエリが存在するかどうかのチェックを開始します。一致するものがあれば、MySQL は戻りますが、一致しない場合は、MySQL は次のステップに進みます。 |
3 | MySQL はクエリ キャッシュ内のエントリを無効としてマークしました。 | テーブルが変更されると、クエリ キャッシュを更新する必要があります。したがって、このステップでは、MySQL はクエリ キャッシュ内のエントリを無効としてマークすることを決定します。 |
4 | 結果を送信します。 | MySQL はキャッシュされた結果を送信し、表示します。 |
結果をキャッシュに保存します。 | MySQL はクエリ結果をクエリ キャッシュに保存します。 | |
クエリ キャッシュはロックされています。 | これでキャッシュ プロセスが完了しました。MySQL はクエリ キャッシュをロックしました。 |
以上がMySQL のクエリ キャッシュに関する基本的な知識は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。