【发布时间】:2012-01-27 18:21:05
【问题描述】:
MySQL 允许我们使用SQL_CACHE 和SQL_NO_CACHE 选项创建选择语句。这些选项会影响查询缓存中查询结果的缓存。但是对于哪些查询最好使用SQL_CACHE 选项,以及哪个SQL_NO_CACHE 选项?或者根本不用它更好?
【问题讨论】:
MySQL 允许我们使用SQL_CACHE 和SQL_NO_CACHE 选项创建选择语句。这些选项会影响查询缓存中查询结果的缓存。但是对于哪些查询最好使用SQL_CACHE 选项,以及哪个SQL_NO_CACHE 选项?或者根本不用它更好?
【问题讨论】:
一般来说,您根本不必使用它。 SQL_CACHE 仅在默认情况下未缓存查询时才需要,它们在默认配置中。如果您知道在不久的将来不会再次使用特定查询,SQL_NO_CACHE 很有用,尤其是在结果集很大的情况下。目标是避免将不再需要的结果弄乱缓存。
【讨论】:
我在调试查询速度时使用SQL_NO_CACHE。
【讨论】:
首先,您需要更新您的 my.cnf (LINUX) 或 my.ini (WINDOWS) 文件。
query_cache_type=2
如果值为 2,则它是按需的,这意味着您可以选择在要缓存的查询结果上使用 SQL_CACHE。
如果是 0 ,则查询缓存没有被激活。
如果为 1 ,则所有查询都缓存在数据库中。 如果您不想缓存某些特定查询,可以使用 SQL_NO_CACHE。
但您应该注意,如果您的表经常更新,查询缓存结果将失效。
【讨论】: