1

MySQL クエリ キャッシュの仕組みを理解したい。私はこのAPIをチェックしました

これらのシナリオはどのように機能しますか?

ケース1

select * from my_table where column = 'Myvalue';

ケース 2

select * from my_table where column = 'test';

ケース 3

select * from my_table where column = 'Myvalue';

したがって、ケース 3 が実行されたときに、結果がキャッシュからフェッチされるか、データベースからフェッチされるかを知りたいのです。誰か説明できますか?説明書にそう書いてあるから

同一と見なされるには、クエリがまったく同じ (バイト単位) である必要があります。

4

1 に答える 1

1

クエリ 1 と 3 は同一であるため、最初のクエリの結果がまだクエリ キャッシュにあり、クエリ間でテーブルが更新されていない限り、3 番目のクエリはテーブルにヒットする代わりにキャッシュによって提供されます。 .

クエリ キャッシュはデフォルトでオフになっています。query_cache_sizeクエリ キャッシュを有効にするには、サイズをバイト単位で設定します。1024 バイトの倍数で設定します。ドキュメントには次のように記載されています。

通常、数十メガバイト単位のサイズが有益です。

クエリ キャッシュ操作については、次の点にも注意してください。

MySQL 5.1.17 より前では、準備済みステートメントはクエリ キャッシュを使用しません。5.1.17 以降、準備されたステートメントは、準備方法によって異なる特定の条件下でクエリ キャッシュを使用します。

テーブルが変更されると、そのテーブルを使用するすべてのキャッシュされたクエリが無効になり、キャッシュから削除されます。

クエリ キャッシュによると、次の 2 つのクエリは同じではありませんが、同じ結果セットが返されることに注意してください。

select * from my_table where column = 'Myvalue';

SELECT * FROM my_table WHERE column = 'Myvalue';
于 2014-05-28T12:13:12.393 に答える