2009-03-16 3 views
0

大規模なMySQLクエリを実行して50KBのレコード(10個の小さな列)をデータベースに挿入すると、クエリキャッシュの使用量が約10MBから400MBに増加します。 MySQLはインサートをキャッシュしていますか?MySQLキャッシュ挿入クエリですか?

答えて

1

別のユーザが述べたように、キャッシュを最新の状態に保つメカニズムがMySQLにあります。キャッシュに以前に格納された結果に影響を与えるINSERTを実行するときは、新しい挿入を反映するように更新するか、または削除して、そのSELECTを再度処理した後に再度作成する必要があります。私はこれがあなたが見ているものだと思う。

また、テーブルを表示して自動的に更新するツールでこのINSERTを実行すると、INSERT後にSELECTSが発行される可能性があります。

0

おそらくメモリにあるキャッシュが更新されています。それがキャッシュ内にある可能性が高いテーブルの場合、MySQLは最新の状態を維持しようとしている可能性があります。

7

MySQL query cache documentationは言う:

クエリキャッシュが クライアントに送信された対応する結果とSELECT文で一緒にのテキストを格納します。同じ 文が後で受信された場合、 サーバーは、構文解析ではなく クエリキャッシュから結果を取得し、 文を再度実行します。

INSERTや他のクエリをキャッシュしません。

+0

upvoteのドキュメントlink.Itは私を助けました!ありがとう:) – KillABug

関連する問題