簡単に言うと、同じ SQL に対して、SQL 解析と実行計画生成の段階をスキップして、キャッシュされた結果を直接返すことができます。つまり、完全な SELECT query 結果をキャッシュします。
キャッシュはハッシュテーブルに保存され、ハッシュ値によって参照されます。ハッシュ値には、クエリ自体、現在のクエリ データベース、クライアント プロトコルなどが含まれます。 ただし、SQL ステートメントに違いがあると、キャッシュ ヒットの失敗 (スペース、コメント、異なる変数名) が発生することに注意してください
しかし、クエリ キャッシュには重大なパフォーマンスの問題もあります:
(1) クエリを読み取る前に、次のことを行う必要があります。キャッシュがヒットしたかどうかを確認します
( 2) クエリがキャッシュにない場合、クエリはキャッシュに配置され、システムの消費量を占有します
(3) データテーブルが新しくデータで更新されると、キャッシュは無効であり、システムに多大な損失を引き起こします。
明らかに、キャッシュとキャッシュの無効化により、同時実行性が高い状態でキャッシュにクエリを実行すると、システムのパフォーマンスが低下し、ゾンビが発生する可能性があります。したがって、memcache などのインメモリ データベースを使用してデータをキャッシュすることをお勧めします。
簡単に言うと、同じ SQL に対して、SQL 解析と実行計画生成の段階をスキップして、キャッシュされた結果を直接返すことができます。つまり、完全な SELECT クエリ結果がキャッシュされます。
キャッシュはハッシュ テーブルに保存され、ハッシュ値によって参照されます。ハッシュ値には、クエリ自体、現在のクエリ データベース、クライアント プロトコルなどが含まれます。 ただし、SQL ステートメントに違いがあると、キャッシュ ヒットの失敗 (スペース、コメント、異なる変数名) が発生することに注意してください
しかし、クエリ キャッシュには重大なパフォーマンスの問題もあります:
(1) クエリを読み取る前に、次のことを行う必要があります。キャッシュがヒットしたかどうかを確認します
( 2) クエリがキャッシュにない場合、クエリはキャッシュに配置され、システムの消費量を占有します
(3) データテーブルが新しくデータで更新されると、キャッシュは無効であり、システムに多大な損失を引き起こします。
明らかに、キャッシュとキャッシュの無効化により、同時実行性が高い状態でキャッシュにクエリを実行すると、システムのパフォーマンスが低下し、ゾンビが発生する可能性があります。したがって、memcache などのインメモリ データベースを使用してデータをキャッシュすることをお勧めします。
以上が高性能 MySQL クエリ キャッシュの導入の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。