MySQL 如何使缓存过期?

MySQL 如何使缓存过期?

假设内存足够,

MySQL如何确定是否从缓存中获取或重新查询?

答案1

据我所知,当表发生变化(插入、更新、删除等)时,mysql 的缓存会自动过期

mysql 通常会根据 query_cache_limit 和大小立即缓存它,默认的 query_cache_limit 是 1M,因此如果单个查询变得更大,那么它将不会缓存,除非您更改它。

您必须确保您的查询也是平等的,因为它考虑了区分大小写的查询。

除此之外,您还可以使用以下命令来监控它:

SHOW STATUS LIKE '%qcache%';

例如创建一个包含一些条目的表并运行:

SELECT id,name FROM my_table WHERE id > '2'; SHOW STATUS LIKE '%qcache%';

您将注意到缓存的查询数量增加了 1,现在再次运行相同的选择,您将看到 mysql 已经使用缓存,并且结果将更快出现。

附加信息

首先,您必须确保您已拥有query-cache-type = 1my.cnf 或 my.ini,具体取决于操作系统/安装。

您可以从 mysql 运行以下命令来验证其状态:

SHOW VARIABLES LIKE '%query_cache%';

列出数据时,您将看到查询缓存大小,如果将其设置为 0,则表示您的查询缓存被禁用,此变量决定用于查询缓存的内存(以字节为单位)。

因此,就像您对 query-cache-type 所做的那样,将以下内容添加到您的 my.cnf 或 my.ini 中:

query-cache-size = 40M

相关内容