小贝_mysql sql语句优化过程

sql语句优化

一、SQL优化的一般步骤

  (1)、通过show status命令了解各种SQL的运行频率。

  (2)、定位运行效率较低的SQL语句-(重点select) 

  (3)、通过explain分析低效率的SQL语句的运行情况

  (4)、确定问题并採取对应的优化措施

(1) 通过showstatus命令了解各种SQL的运行频率

MySQLclient连接成功后,通过使用show[session|global] status 命令能够提供server状态信息。

当中的session来表示当前的连接的统计结果,global来表示自数据库上次启动至今的统计结果。默认是session级别的。

以下的样例: show status like ‘Com_%’;

当中Com_XXX表示XXX语句所运行的次数。

重点注意:

Com_select,Com_insert,Com_update,Com_delete通过这几个參数,能够easy地了解到当前数据库的应用是以插入更新为主还是以查询操作为主。以及各类的SQL大致的运行比例是多少。

參数说明:

com_xxx表示每一个xxx语句的运行次数.如:

com_select 表示运行select操作的次数,一次查询仅仅累计加1

com_update 表示运行update操作的次数

com_insert 表示运行insert操作的次数,对批量插入仅仅算一次

com_delete 表示运行delete操作的次数

仅仅针对innodb存储引擎的參数

Innodb_rows_deleted运行delete操作所影响的行数

Innodb_rows_inserted运行insert操作所影响的行数

Innodb_rows_read运行select操作所影响的行数

Innodb_rows_updated运行update操作所影响的行数

还有几个经常使用的參数便于用户了解数据库的基本情况。

connections:试图连接MySQLserver的次数(成功or失败都会进行累加)

uptime:server工作的时间(单位秒)

slow_queries:慢查询的次数 (默认是10)


(2)、定位运行效率较低的SQL语句

通过开启慢查询

(3)、通过explain分析低效率的SQL语句的运行情况

(4)、确定问题并採取对应的优化措施



The quieter you become,the more you are able to hear!

原文地址:https://www.cnblogs.com/blfbuaa/p/6872394.html