百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文
MySQL各种SQL的执行频率

MySQL各种SQL的执行频率

  • 网站名称:MySQL各种SQL的执行频率
  • 网站分类:技术文章
  • 收录时间:2025-06-08 15:53
  • 网站地址:

进入网站

“MySQL各种SQL的执行频率” 网站介绍

查看SQL执行频率

当面对一个有 SOL 性能问题的数据库时,我们应该从何处人手来进行系统的分析、使能够尽快定位问题SOL 并尽快解决问题。

通过show status 命令了解各种SQL的执行频率。

MySQL客户端连接成功后,通过show [session | global] status 命今可以提供服务器状态信息,“session”表示显示session级(当前连接)的统计果,"global"表示global级(自数据库上次启动至今)的统计结果。如果不写,默认使用的参数是“session"。

show status like 'Com_%'

Com_xxx表示每个xxx 语句执行的次数,我们通常比较关心的是以下几个统计参数:

  • Com_select:执行 SELECT 操作的次数,一次查询只累加1。
  • Com_insert:执行INSERT 操作的次数,对于批量插入的INSERT操作,只累加一次。
  • Com_update:执行UPDATE操作的次数。
  • Com_delete:执行DELETE操作的次数。

上面这些参数对于所有存储引擎的表操作都会进行累计。下面这几个参数只是针对lmnoDB存储引擎的,累加的算法也略有不同。

  • Innodb_rows_read; SELECT 查询返回的行数。
  • Innodb_rows_inserted: 执行INSERT操作插入的行数。
  • Innodb_rows_updated: 执行UPDATE操作更新的行数。
  • Innodb_rows_deleted: 执行 DELETE 操作删除的行数。

通过以上几个参数,可以很容易地了解当前数据库的应用是以插人更新为主还是以查询舞作为主,以及各种类型的 SOL 大致的执行比例是多少。对于更新操作的计数,是对执行次要的计数,不论提交还是回滚都会进行累加。

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

此外,以下几个参数便于用户了解数据库的基本情况:

  • Connections;试图连接 MySOL服务器的次数
  • Uptime:服务器工作时间,
  • Slow qucries:慢查询的次数

定位执行效率较低的SQL语句

可以通过以下两种方式定位执行效率较低的SQL语句:

  1. 通过慢查询日志定位那些执行效率较低的 SQL语句,用--log-slow-queries[=file _name]选项启动时,mysqld写一个包含所有执行时间超过 long_query_time 秒的SQL语句的日志文件。

2. 慢查询日志在查询结束以后才记录,所以在应用反映执行效率出现问题的时候查询慢查询日志并不能定位问题,可以使用 show processlist 命令查看当前 MySQL在进行的线程,包括线程的状态、是否锁表等,可以实时地查看 SQL 的执行情况,同时对一些锁表操作进行优化。