SQL优化学习笔记(一)
1.通过 show status 命令了解各种SQL的执行频率
通过 SHOW [SESSION|GLOBAL] STATUS 命令查看服务器状态信息
SESSION 级即当前连接的统计结果;
GLOBAL级显示自数据库上次启动至今的统计结果。
![](https://img2020.cnblogs.com/blog/1086925/202005/1086925-20200521225045570-522144503.png)
Com_xxx 表示每个xxx语句执行的次数,通常关心的几个统计参数是:
1 Com_select: 执行SELECT操作的次数,一次查询只累加一次; 2 Com_insert: 执行INSERT操作的次数, 对于批量插入的INSERT操作,只累加一次; 3 Com_update: 执行UPDATE操作的次数; 4 Com_delete: 执行DELETE操作的次数
Innodb_xxx 是针对存储Innodb存储引擎的:
1 Innodb_rows_deleted:执行DELETE操作删除的行数; 2 Innodb_rows_inserted:执行INSERT操作删除的行数; 3 Innodb_rows_read:SELECT查询返回的行数; 4 Innodb_rows_updated:执行UPDATE操作删除的行数
通过以上这些参数,可以比较清晰的明白当前数据库是以插入更新为主还是以查询操作为主,以及各类SQL大致的执行比例是多少。
对于更新操作的计数,是对执行次数的统计,不论提交和回滚都会进行累加。事务型的应用,通过Com_commit 和 Com_rollback 可以了解到事务提交和回滚的情况。
以下几个参数可以了解到数据库的基本情况:
1 Connections : 试图连接MySql服务器的次数; 2 Uptime:服务器工作时间; 3 Slow_queries:慢查询次数
定位执行效率较低的SQL语句的方法:
1) 通过慢查询日志定位那些执行效率较低的SQL(慢查询日志是在查询结束以后记录的);
2) 使用 SHOW PROCESSLIST; 命令查看当前Mysql在进行的线程。
欢迎转载,转载请注明出处 https://www.cnblogs.com/waiting-ying/p/12934277.html