MySQL上的查询缓存是否会在一段时间后自动重置?有些结果会缓存一段时间,但第二天就会重置
我执行如下查询:MySQL上的查询缓存是否会在一段时间后自动重置?有些结果会缓存一段时间,但第二天就会重置,mysql,sql,amazon-web-services,amazon-rds,Mysql,Sql,Amazon Web Services,Amazon Rds,我执行如下查询: SELECT * FROM graphql.cases where parties = 'Bondelmonte v Bondelmonte' LIMIT 0, 1000 需要2秒钟。然后我重复了一遍,花了0.2秒,告诉我缓存正在工作 但第二天,我重复同样的事情,再次重复,开始需要2秒,然后是0.2秒 我不是一天前第一次缓存了查询吗?有多种情况可能会导致查询结果从缓存中清除,例如: 数据可能已被修改 您可能运行的语句的文本与缓存的语句略有不同(小写/大写,换行符,…)
SELECT *
FROM graphql.cases
where parties = 'Bondelmonte v Bondelmonte'
LIMIT 0, 1000
需要2秒钟。然后我重复了一遍,花了0.2秒,告诉我缓存正在工作
但第二天,我重复同样的事情,再次重复,开始需要2秒,然后是0.2秒
我不是一天前第一次缓存了查询吗?有多种情况可能会导致查询结果从缓存中清除,例如:
- 数据可能已被修改
- 您可能运行的语句的文本与缓存的语句略有不同(小写/大写,换行符,…)
- 缓存可能已达到其大小限制之一(内存、查询计数、块等),并决定退出特定查询
- 缓存碎片变得很高,甚至在某些内存仍然可用的情况下,也强制缓存修剪查询
- 等等
MERGE
表的查询。表可以通过多种类型的语句进行更改,例如INSERT
,UPDATE
,DELETE
,TRUNCATE table
,ALTER table
,DROP table
,或DROP DATABASE
[……]
如果有很多查询的结果很小,那么默认块大小可能会导致内存碎片,如大量空闲块所示。由于内存不足,碎片可能会强制查询缓存从缓存中删除查询
有多种情况可能会导致查询结果从缓存中清除,例如:
- 数据可能已被修改
- 您可能运行的语句的文本与缓存的语句略有不同(小写/大写,换行符,…)
- 缓存可能已达到其大小限制之一(内存、查询计数、块等),并决定退出特定查询
- 缓存碎片变得很高,甚至在某些内存仍然可用的情况下,也强制缓存修剪查询
- 等等
MERGE
表的查询。表可以通过多种类型的语句进行更改,例如INSERT
,UPDATE
,DELETE
,TRUNCATE table
,ALTER table
,DROP table
,或DROP DATABASE
[……]
如果有很多查询的结果很小,那么默认块大小可能会导致内存碎片,如大量空闲块所示。由于内存不足,碎片可能会强制查询缓存从缓存中删除查询