MySql学习笔记:MySql性能优化

本文是自己的学习笔记,主要参考以下资料

- 大话设计模式,程杰著,清华大学出版社出版
- 马士兵教育

  • 1、MySql调优金字塔
  • 2、MySql调优
    • 2.1、查询性能
      • 2.1.1、慢查询
        • 2.1.1.1、总结


1、MySql调优金字塔

MySql学习笔记:MySql性能优化_第1张图片
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%';

MySql学习笔记:MySql性能优化_第2张图片

指定慢查询日志的文件地址

show VARIABLES like '%slow_query_log_file%'

MySql学习笔记:MySql性能优化_第3张图片

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%'

你可能感兴趣的:(MySQL,mysql)