我正在查看慢速查询日志,我发现以下查询花费了太多时间
# Query_time: 4875.960250 Lock_time: 4819.281516 Rows_sent: 1 Rows_examined: 1
use mydb;
SET timestamp=1358591898;
SELECT `Currency`.`rate`
FROM `currencies` AS `Currency`
WHERE `Currency`.`currency` = 'usd '
LIMIT 1;
我需要做什么来优化查询时间,以及如何最小化锁时间?
有一件事你可以尝试,如果表类型是MyISAM,将其更改为InnoDB, InnoDB支持行级锁定,这意味着如果你正在更新表,其他查询不必等到操作完成,如果不访问同一行。
否则查询看起来很简单,我不希望货币表经常改变。
如果不是这种情况,检查缓存配置是否正确,例如https://launchpad.net/mysql-tuning-primer