当我运行一个大型MySQL查询,向数据库插入50k条记录(包含10个小列)时,查询缓存使用率从10MB左右激增到400MB。MySQL会缓存我的插入内容吗?
发布于 2009-03-16 17:50:16
正如另一位用户所说,MySQL中有一种机制可以使缓存保持最新。执行影响缓存中先前存储结果的插入操作时,必须更新该插入操作以反映新插入操作,或者删除该插入操作,以便稍后再次处理该SELECT操作时再次创建该插入操作。我怀疑这就是你所看到的。
另一种可能性,虽然更明显,但希望不是您的问题,如果您使用显示并自动更新表的工具执行此插入,则可能是在您插入后发出SELECTS。
发布于 2009-03-16 17:38:26
MySQL query cache documentation说:
查询缓存存储SELECT语句的文本以及发送到客户端的相应结果。如果稍后收到相同的语句,服务器将从查询缓存中检索结果,而不是再次分析和执行该语句。
它不缓存INSERT或其他查询。
发布于 2009-03-16 17:38:18
它可能正在更新内存中的缓存。如果它是一个可能在缓存中的表,那么MySQL可能会尝试保持最新。
https://stackoverflow.com/questions/651387
复制相似问题