MySQL如何使缓存过期?

3 mysql cache

假设内存足够,

MySQL如何判断是从缓存中获取还是重新查询?

Pri*_*rix 5

AFAIK 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,则意味着您的查询缓存已禁用,该变量确定用于查询缓存的内存(以字节为单位)。

正如您对查询缓存类型所做的那样,将以下内容添加到您的 my.cnf 或 my.ini 中:

query-cache-size = 40M