SELECT SQ_CACHE * FROM TABLE where ID=1
问题:
ID=1
以外的行仍然更新了我的缓存吗?答案 0 :(得分:4)
*除了一些角落案例或错误之外。
“简短”答案(注意:特定于MySQL)将是: AFAIK MySQL以表级粒度缓存;因此,该表上的任何更改都将使该表的所有缓存结果无效。除此之外,只有确定性查询才会被缓存,事务可能绕过/使缓存无效,查询缓存不支持预处理语句,查询必须绝对完全相同才能使缓存完全启动(因此需要额外的空间)查询会导致缓存未命中)并且不支持子查询。然后还有其他因素。也许有些事情在最近的版本中发生了变化,但这些都是过去涉及的因素中的一些(并非全部!)。如果我错了,请纠正我。