我正在测试MySQL中一些查询的速度。数据库正在缓存这些查询,这使得我在测试这些查询有多快时很难得到可靠的结果。
是否有方法禁用查询的缓存?
系统:MySQL 4在Linux主机上,我可以访问PHPMyAdmin。
谢谢
我正在测试MySQL中一些查询的速度。数据库正在缓存这些查询,这使得我在测试这些查询有多快时很难得到可靠的结果。
是否有方法禁用查询的缓存?
系统:MySQL 4在Linux主机上,我可以访问PHPMyAdmin。
谢谢
当前回答
在查询中使用用户定义的变量会使查询结果不可缓存。我发现它是一个比使用SQL_NO_CACHE更好的指示器。但是你应该把变量放在一个变量设置不会严重影响性能的地方:
SELECT t.*
FROM thetable t, (SELECT @a:=NULL) as init;
其他回答
另一个只影响当前连接的选项:
SET SESSION query_cache_type=0;
如果你想禁用查询缓存,在你的mysql配置文件中设置query_cache_size为0。如果设置为0,mysql将不使用查询缓存。
在查询中使用用户定义的变量会使查询结果不可缓存。我发现它是一个比使用SQL_NO_CACHE更好的指示器。但是你应该把变量放在一个变量设置不会严重影响性能的地方:
SELECT t.*
FROM thetable t, (SELECT @a:=NULL) as init;
我会使用以下方法:
SHOW VARIABLES LIKE 'query_cache_type';
SET SESSION query_cache_type = OFF;
SHOW VARIABLES LIKE 'query_cache_type';
您也可以运行以下命令来重置查询缓存。
RESET QUERY CACHE