基于MySQL服务器的性能优化
2017-05-08 17:31
239 查看
在此我们将性能优化的目标定义为降低查询的响应时间。为了降低响应时间,就必须先搞清楚时间都花在哪里:无法测量就无法有效地优化。
完成一项任务所需时间可以分为两部分:执行时间和等待时间。如果要优化任务的执行时间,最好的办法是通过测量定位不同的子任务花费的时间,然后优化去掉一些子任务、降低子任务的执行频率或者提升子任务的执行效率。优化等待时间则相对复杂一些,因为等待有可能是由其他系统间接影响导致,任务之间也可能由于争用磁盘或者CPU资源而相互影响。
剖析单条查询
1. 使用show profiles; 查看高精度的响应时间;
2. 使用show profile for query 1; 查看query_id为1的查询执行每个步骤花费的时间;
3. 使用show status查看一些计数器的值。
判断单条查询问题还是服务器问题
1. 使用show global status,通过计数器的“尖刺”或者“凹陷”来发现问题;
2. 使用show processlist,观察是否有大量线程处于不正常状态或者其他不正常的特征。
完成一项任务所需时间可以分为两部分:执行时间和等待时间。如果要优化任务的执行时间,最好的办法是通过测量定位不同的子任务花费的时间,然后优化去掉一些子任务、降低子任务的执行频率或者提升子任务的执行效率。优化等待时间则相对复杂一些,因为等待有可能是由其他系统间接影响导致,任务之间也可能由于争用磁盘或者CPU资源而相互影响。
性能剖析
性能剖析是测量和分析时间花费在哪里的主要方法。性能剖析一般有两个步骤:测量任务所花费的时间;对结果进行统计和排序,将重要的任务排到前面。应该尽可能地测量一切可以测量的地方,并接受这些测量带来的额外开销,这些开销应该被当成应用程序的一部分。性能数据可以帮助规划好硬件采购、资源分配以及预测周期性的性能尖峰。剖析单条查询
1. 使用show profiles; 查看高精度的响应时间;
2. 使用show profile for query 1; 查看query_id为1的查询执行每个步骤花费的时间;
3. 使用show status查看一些计数器的值。
判断单条查询问题还是服务器问题
1. 使用show global status,通过计数器的“尖刺”或者“凹陷”来发现问题;
2. 使用show processlist,观察是否有大量线程处于不正常状态或者其他不正常的特征。
相关文章推荐
- Mysql服务器如何得到最佳性能优化
- MySQL日志优化,提升MySQL服务器性能
- 服务器性能优化和Mysql性能优化
- [置顶] 【mysql 性能优化篇】优化MySQL服务器
- 从数据库、代码和服务器对PHP网站Mysql做性能优化
- LAMP(Linux+Apache+MySQL+PHP)服务器的性能优化
- MySQL服务器性能优化
- MySQL服务器性能优化--《高性能MySQL》
- Mysql服务器如何得到最佳性能优化
- 一次MYSQL 服务器性能优化之旅
- Mysql数据库服务器性能配置优化三 -- Mysql编译配置优化,XtraDB使用,my.cnf优化
- MySQL服务器性能优化
- (1)基于Linux服务器的性能分析与优化
- 从数据库、代码和服务器对PHP网站Mysql做性能优化
- [转]LAMP(Linux+Apache+MySQL+PHP)服务器的性能优化
- LAMP服务器性能优化技巧之Mysql优化
- (2)基于Linux服务器的性能分析与优化
- [转]LAMP(Linux+Apache+MySQL+PHP)服务器的性能优化
- mysql 性能-优化服务器配置
- 从数据库、代码和服务器对PHP网站Mysql做性能优化