欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

mysql 开发进阶篇系列 1 SQL优化(上)

程序员文章站 2022-12-01 10:29:03
一.概述 随着上线后,数据越来越多,很多sql语句开始显露出性能问题,本章介绍在mysql中优化sql语句的方法。 1. 通过show status 命令了解各种sql的执行频率 通过show [session | global] 命令可以提供服务器状态信息,也可以在操作系统上使用mysqladmi ......

一.概述

         随着上线后,数据越来越多,很多sql语句开始显露出性能问题,本章介绍在mysql中优化sql语句的方法。

 1.  通过show status 命令了解各种sql的执行频率

         通过show [session | global] 命令可以提供服务器状态信息,也可以在操作系统上使用mysqladmin extended-status 命令来获得。 session 是默认参数 是当前连接的统计结果, global 是自数据库上次启动到今的统计结果。

 -- 查看全局所有统计的值 
SHOW GLOBAL STATUS  LIKE 'Com%';

mysql 开发进阶篇系列 1  SQL优化(上)

  (1)  Com_xxx:通常比较关心的是以下几个统计参数

Com_select

执行select 操作的次数,一次查询只累计加1

Com_insert

执行insert操作的次数,对于批量插入的insert操作,只累计加1

Com_update

执行update操作的次数

Com_delete

执行delete 操作的次数

mysql 开发进阶篇系列 1  SQL优化(上)

  (2)  针对innodb 存储引擎的参数,累加的算法有所不同

Innodb_rows_read

Select 查询返回的行数

Innodb_rows_inserted

执行insert操作插入的行数

Innodb_rows_updated

执行update操作更新的行数

Innodb_rows_deleted

执行delete操作删除的行数

 

mysql 开发进阶篇系列 1  SQL优化(上)

  通过以上参数,可以了解当前数据库的应用是以插入更新为主还是查询操作为主,以及各种类型的sql的分布比例。

  (3) com_commit和com_rollback

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

mysql 开发进阶篇系列 1  SQL优化(上)

  (4) 以下参数便于用户了解数据库的基本情况

connections

试图连接mysql 服务器的次数

Uptime

服务器工作时间(单位:秒) 9001527秒 = 工作了104天

Slow_queries

慢查询的次数.

mysql 开发进阶篇系列 1  SQL优化(上)

  对于Slow_queries 是指超过Long_query_time值就会被记录。Long_query_time表示超过多少秒的查询就写入日志,默认的是10s,设置为0的话表示记录所有的查询。

--  下面设置的时间是2秒
SHOW VARIABLES LIKE 'long%'

mysql 开发进阶篇系列 1  SQL优化(上)