三十九、MySQL基础系列笔记优化篇之SQL优化步骤

作者: 温新

分类: 【MySql】

阅读: 2203

时间: 2021-04-06 15:35:39

随着数据量的不断增大,很多SQL语句逐渐暴露出性能问题,此时这些有问题的SQL语句将会成为整个系统的性能瓶颈,因此,对SQL的优化非常重要。面对系统突然变慢(sql层面),那么如何下手查找出问题所在?下文提供了SQL优化的几个步骤。

SQL优化步骤

查看SQL执行频率

命令:show [session|global] status查看服务器状态信息。

mysql> show status like 'Com_%';
+-------------------------------------+-------+
| Variable_name                       | Value |
+-------------------------------------+-------+
| Com_admin_commands                  | 0     |
.......
| Com_alter_resource_group            | 0     |
| Com_alter_server                    | 0     |
| Com_alter_table                     | 24    |

Com_xxx表示每个xxx语句执行的次数,通过关心这样几个统计参数:

  • Com_select 执行select查询操作的次数,一次查询只累加1;
  • Com_insert 执行insert插入操作的次数,对于批量插入,只累加一次;
  • Com_update 执行update更新操作的次数;
  • Com_delete 执行delete删除操作的次数。

这4个操作对于所有存储引擎有效,下面的参数只对InnoDB存储引擎有效:

  • InnoDB_rows_read select查询结果返回的行数;
  • InnoDB_rows_inserted 执行insert操作插入的行数;
  • InnoDB_rows_updated 执行update操作更新的行数;
  • InnoDB_rows_deleted 执行delete操作的次数。

通过上面的参数可以了解到当前数据库的应用是以插入更新为主还是以查询操作为主,以及各种类型的SQL大致的执行比例是多少。

对于事务型的应用,通过Com_commit和Com_rollback可以了解到事务提交和回滚的情况,对于回滚操作非常频繁的数据库,可能意味着应用编写存在问题。

查看服务器工作时间

show status like 'update';

查看服务器连接次数

show status like 'connections';

查看慢查询次数

show status like 'slow_queries';
请登录后再评论