首先,需要定位需要优化的部分,有如下方法:
1. Show命令:我们可以通过show命令查看MySQL状态及变量,找到系统的瓶颈。
2. 慢查询日志:将查询时间超过指定秒数的SQL记录在日志中,可以定位到需要优化的SQL。
3. EXPLAIN分析:使用 EXPLAIN 关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。这可以帮你分析你的查询语句或是表结构的性能瓶颈。
4. profiling分析:通过慢日志查询可以知道哪些SQL语句执行效率低下,通过explain我们可以得知SQL语句的具体执行情况,索引使用等,还可以结合show命令查看执行状态。如果觉得explain的信息不够详细,可以同通过profiling命令得到更准确的SQL执行消耗系统资源的信息。
参考:http://blog.chinaunix.net/uid-11640640-id-3426908.html
其次,有几个层面的优化:
1. SQL语句及索引的优化
2. 数据库表结构的优化
3. 系统配置的优化
4. 硬件的优化