本文是自己的学习笔记,主要参考以下资料
- 大话设计模式,程杰著,清华大学出版社出版
- 马士兵教育
- 1、MySql调优金字塔
- 2、MySql调优
- 2.1、查询性能
- 2.1.1、慢查询
- 2.1.1.1、总结
1、MySql调优金字塔
Mysql 调优时设计三个层面,分别是架构调优,MySql调优,硬件和OS调优。这三者的成本和效果如上所示,越在底层的越是优先考虑。
架构调优是指系统设计时需要考虑业务的实际情况,比如数据库是否承担了不属于他的工作,能否将这些工作移到数据仓库或者缓存中去;并发量是否够大,要不要读写分离;金融类的应用还要考虑数据安全性问题,是否要增加新的设计保证数据不会丢失等等。架构设计得不合适,那么在其他方面调优达到的效果也是有限。
MySql调优是指,业务表设计是否合理,索引设计是否合理等技术上的考量。
硬件和OS调优则是查看硬件和OS了,需要对这些有深刻的认识。单单磁盘来说,就需要考虑使用什么样的磁盘阵列(RAID)级别、是否可以分散磁盘IO等。
这篇文章主要讲解如何MySql调优。
2、MySql调优
2.1、查询性能
想要优化,首先考虑的是对哪些东西调优,如何查询性能。
2.1.1、慢查询
所谓的慢查询是指在默认的情况下,MySql将哪些相应时间超过10s的查询称为慢查询。当然我们可以自己更改时间。
慢查询默认关闭,可以通过下面语句开启和查看。
-- 1开启,0关闭
set GLOBAL slow_query_log=1;
show VARIABLES like '%slow_query_log%';
关于慢查询的时间界限,默认10秒。
show VARIABLES like '%long_query_time%';
指定慢查询日志的文件地址
show VARIABLES like '%slow_query_log_file%'
2.1.1.1、总结
set GLOBAL slow_query_log=1;
show VARIABLES like '%slow_query_log%';
show VARIABLES like '%long_query_time%';
show VARIABLES like '%slow_query_log_file%'