ホームページ  >  記事  >  データベース  >  高性能 MySQL クエリ キャッシュの導入

高性能 MySQL クエリ キャッシュの導入

黄舟
黄舟オリジナル
2017-03-15 17:24:151261ブラウズ


簡単に言うと、同じ SQL に対して、SQL 解析と実行計画生成の段階をスキップして、キャッシュされた結果を直接返すことができます。つまり、完全な SELECT query 結果をキャッシュします。

1. MySQLクエリキャッシュ:

キャッシュはハッシュテーブルに保存され、ハッシュ値によって参照されます。ハッシュ値には、クエリ自体、現在のクエリ データベース、クライアント プロトコルなどが含まれます。 ただし、SQL ステートメントに違いがあると、キャッシュ ヒットの失敗 (スペース、コメント、異なる変数名) が発生することに注意してください

しかし、クエリ キャッシュには重大なパフォーマンスの問題もあります:
(1) クエリを読み取る前に、次のことを行う必要があります。キャッシュがヒットしたかどうかを確認します

( 2) クエリがキャッシュにない場合、クエリはキャッシュに配置され、システムの消費量を占有します

(3) データテーブルが新しくデータで更新されると、キャッシュは無効であり、システムに多大な損失を引き起こします。

明らかに、キャッシュとキャッシュの無効化により、同時実行性が高い状態でキャッシュにクエリを実行すると、システムのパフォーマンスが低下し、ゾンビが発生する可能性があります。したがって、memcache などのインメモリ データベースを使用してデータをキャッシュすることをお勧めします。


簡単に言うと、同じ SQL に対して、SQL 解析と実行計画生成の段階をスキップして、キャッシュされた結果を直接返すことができます。つまり、完全な SELECT クエリ結果がキャッシュされます。

1. MySQL クエリ キャッシュ:

キャッシュはハッシュ テーブルに保存され、ハッシュ値によって参照されます。ハッシュ値には、クエリ自体、現在のクエリ データベース、クライアント プロトコルなどが含まれます。 ただし、SQL ステートメントに違いがあると、キャッシュ ヒットの失敗 (スペース、コメント、異なる変数名) が発生することに注意してください

しかし、クエリ キャッシュには重大なパフォーマンスの問題もあります:
(1) クエリを読み取る前に、次のことを行う必要があります。キャッシュがヒットしたかどうかを確認します

( 2) クエリがキャッシュにない場合、クエリはキャッシュに配置され、システムの消費量を占有します

(3) データテーブルが新しくデータで更新されると、キャッシュは無効であり、システムに多大な損失を引き起こします。

明らかに、キャッシュとキャッシュの無効化により、同時実行性が高い状態でキャッシュにクエリを実行すると、システムのパフォーマンスが低下し、ゾンビが発生する可能性があります。したがって、memcache などのインメモリ データベースを使用してデータをキャッシュすることをお勧めします。

以上が高性能 MySQL クエリ キャッシュの導入の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。