1

マニュアルには、「SQL_NO_CACHE」によってクエリがキャッシュに追加されないことが示されています。しかし、私が見ることができるキャッシュの使用については何も言っていません。

クエリの 2 つのバージョンをベンチマークしようとしていますが、"SQL_NO_CACHE" なしで既に実行されています。したがって、テストでクエリ キャッシュを使用しているかどうかはわかりません。

「SQL_NO_CACHE」ディレクティブは、クエリがキャッシュを使用するのを防ぎますか、それともキャッシュに追加するだけですか?

4

1 に答える 1

3

MySQL クエリ キャッシュは、クエリの完全なリテラル テキストに基づいてインデックスが作成されるため、機能的に違いはありません。ディレクティブが無視された場合でも、クエリの結果は、クエリとSQL_NO_CACHEは別のキャッシュ「スロット」に格納されます。なしSQL_NO_CACHE。(実際、単にどこかのクエリにスペースを追加したり、"SELECT" を "select" に変更したりするだけでも、クエリ キャッシュが "バスト" され、再度実行されます。MySQL クエリ キャッシュは特に洗練されたものではありません。 )

そうは言っても、クエリを実行しSQL_NO_CACHEQCACHE_QUERIES_IN_CACHEステータスを確認することによる簡単なテストでは、変数がキャッシュに保存されるのを防ぐことができSQL_NO_CACHEます。結果のために。SQL_NO_CACHE

于 2012-09-25T05:33:23.623 に答える