1.为查询缓存优化你的查询
例:curdate()、now()、'2015-01-01',前两者都不能利用到数据库的查询缓存,尽量采用常量
2.不使用永久链接
3.innodb_read_io_threads的调优:看innodb状态,如果pending read较大,则调整,调整后观察pending read
4.SQL_NO_CACHE的真正作用是禁止缓存查询结果,但并不意味着cache不作为结果返回给query。
5.limit的优化:
定时器的sql示例如下:
select * from table where status=0 limit 29800,200;
select * from table where status=0 limit 30000,200;
select * from table where status=0 limit 30200,200;
limit分页到这个程度,就非常慢了。
调优办法:
select * from table where status=0 and id>0 limit 0,200;
select * from table where status=0 and id>200 limit 0,200;
select * from table where status=0 and id>400 limit 0,200;
调优后效果非常显著,sql执行起来几乎无延迟。
参考资料:《高性能MySQL》 第三版
相关文章
- 01-21性能调优篇:困扰我半年之久的RocketMQ timeout exception 终于破解了
- 01-21JVM调优之新生代的gc回收经验
- 01-21性能测试分析与性能调优诊断--史上最全的服务器性能分析监控调优篇
- 01-21来自 Facebook 的 Spark 大作业调优经验
- 01-21来自 Facebook 的 Spark 大作业调优经验
- 01-21性能调优的常见手段
- 01-21多测师讲解性能测试_____Tomcat调优的方法_____高级讲师肖sir
- 01-21偷偷告诉你5个强大的JVM 性能调优监控工具
- 01-21jvm性能调优实战 - 61常用的JVM调优网站
- 01-21高写入负载下的Postgres性能调优