MySQL如何过期caching?

假设内存够用了,

MySQL如何确定是从caching中获取还是重新查询?

AFAIK mysql会自动过期,当表更改(插入,更新,删除等)

mysql通常会根据query_cache_limit和size的大小马上caching它,默认的query_cache_limit是1M,所以如果单个查询变大,那么除非你改变它,否则它不会caching。

您必须确保您的查询是iquals以及考虑到区分大小写的查询。

除此之外,您可以使用follow命令来监视它:

SHOW STATUS LIKE '%qcache%';

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

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

您会注意到,caching的查询数量增加了1,现在再次运行相同的select,您将看到mysql已经在使用caching,结果将会更快。

附加信息

首先,您必须确保在my.cnf或my.ini中具有query-cache-type = 1 ,具体取决于OS / INSTALLATION。

从mysql你可以运行follow命令来validation它的状态:

SHOW VARIABLES LIKE '%query_cache%';

列出数据时,您将看到query-cache-size,如果设置为0,则表示查询caching已禁用,此variables确定用于查询caching的内存(以字节为单位)。

就像你为查询cachingtypes所做的那样,把下面的代码添加到你的my.cnf或my.ini中:

query-cache-size = 40M