我在拥有数十个数据库的MySQL服务器上运行数据库,所以
RESET QUERY CACHE
是不可能的,因为我会为所有其他数据库重置它。
我很好奇是否可以只为一个数据库或一个查询重置查询缓存?或者是否可以编写不使用查询缓存的SELECT
语句?
更新:我尝试SELECT SQL_NO_CACHE
和set session query_cache_type=0
,但这些没有任何区别......这让我觉得我遇到了磁盘或操作系统缓存。
我真正想做的就是基准......你会认为MySQL会提供一种方式......
答案 0 :(得分:0)
不幸的是,对于单个套接字,所有数据库都将共享相同的my.cnf参数。您可以在不同的套接字上绑定MYSQL并运行不同的mysql实例,然后可以启用或禁用查询缓存。
但还有另一种解决方案,您可以在那里使用memcached和store查询,以便在需要时可以从那里进行访问,以便您可以禁用查询缓存。我理解查询缓存可能会导致争用。
答案 1 :(得分:0)
我们不能使用SQL_NO_CACHE
示例:SELECT SQL_NO_CACHE id,name FROM customer;