MySQL是否缓存插入查询?

时间:2009-03-16 17:33:13

标签: mysql

当我运行一个大型MySQL查询,将50k条记录(包含10个小列)插入数据库时​​,我的查询缓存使用率从大约10MB增加到400MB。 MySQL是否缓存了我的插入内容?

3 个答案:

答案 0 :(得分:7)

MySQL query cache documentation说:

  

查询缓存存储SELECT语句的文本以及相应的结果   发送给客户。如果相同   声明是稍后收到的   服务器从中检索结果   查询缓存而不是解析和   再次执行该声明。

它不会缓存INSERT或其他查询。

答案 1 :(得分:1)

正如另一位用户所说,MySQL中有一种机制可以使缓存保持最新状态。当您执行影响先前在缓存中存储的结果的INSERT时,必须更新它以反映新插入或删除,以便稍后再次处理该SELECT时再次创建。我怀疑这就是你所看到的。

另一种可能性,虽然更明显,并且希望不是您的问题,但如果您使用显示并自动更新表的工具执行此INSERT,则可能在INSERT后发出SELECTS。

答案 2 :(得分:0)

它可能正在更新内存中的缓存。如果它是一个可能在缓存中的表,那么MySQL可能会试图保持最新。