一:优化SQL的一般步骤
当面对一个SQL需要优化时,我们应该从何处入手进行系统的分析,使得能够尽快定位问题SQL并尽快解决问题。如下通过几个方面接受优化SQL的一般步骤。
步骤一:通过show status命令了解各种SQL执行的频率
show global/session status like ‘Com_%’
该命令可以了解数据库服务器的状态信息,global和session表示表示显示数据库那一个阶段的状态信息,global表示从上次启动至今的状态信息,session表示当前连接的状态信息。如果不区分global和session的话,则默认是session。
我们通常关系的几个参数:
- Com_select 表示SELECT查询的次数
- Com_insert 表示INSERZT的次数
- Com_update 表示UPDATE的
- Com_delete 表示DELETE的次数
- Connections 表示试图连接Mysql的次数
- Uptime 服务器工作的时间
- Slow_queries 慢查询的次数
通过如上参数我们可以了解到当前数据库主要是以插入更新为主还是查找为主,以及各个SQL语句执行的比例,知道这些情况后,可以对当前数据库设计做一个大概的了解,方便后续对数据进行一个优化。
步骤二:定位执行效率比较低的SQL语句
mysql> show variables like '