基于MySQL服务器的性能优化

来源:互联网 发布:tera mac 编辑:程序博客网 时间:2024/06/06 10:50

在此我们将性能优化的目标定义为降低查询的响应时间。为了降低响应时间,就必须先搞清楚时间都花在哪里:无法测量就无法有效地优化
完成一项任务所需时间可以分为两部分:执行时间和等待时间。如果要优化任务的执行时间,最好的办法是通过测量定位不同的子任务花费的时间,然后优化去掉一些子任务、降低子任务的执行频率或者提升子任务的执行效率。优化等待时间则相对复杂一些,因为等待有可能是由其他系统间接影响导致,任务之间也可能由于争用磁盘或者CPU资源而相互影响。

性能剖析

性能剖析是测量和分析时间花费在哪里的主要方法。性能剖析一般有两个步骤:测量任务所花费的时间;对结果进行统计和排序,将重要的任务排到前面。应该尽可能地测量一切可以测量的地方,并接受这些测量带来的额外开销,这些开销应该被当成应用程序的一部分。性能数据可以帮助规划好硬件采购、资源分配以及预测周期性的性能尖峰。
剖析单条查询
1. 使用show profiles;     查看高精度的响应时间;
2. 使用show profile for query 1;     查看query_id为1的查询执行每个步骤花费的时间;
3. 使用show status查看一些计数器的值。
判断单条查询问题还是服务器问题
1. 使用show global status,通过计数器的“尖刺”或者“凹陷”来发现问题;
2. 使用show processlist,观察是否有大量线程处于不正常状态或者其他不正常的特征。

1 0
原创粉丝点击