1、通过show status 命令了解各种SQL执行频率
SHOW STATUS LIKE ‘com_%’;
下面命令显示了当前session中所有统计参数的值
列表内容
Com_xxx 表示每个语句执行的次数,我们比较关系的是下面参数。
Com_select 执行select操作的次数
Com_insert 执行insert操作的次数,对于批量的插入,只累加一次。
Com_update 执行update操作的次数
Com_delete 执行delete操作的次数
通过以上参数,可以很容易了解到当前数据库的应用是插入为主还是查询为主,以及各种sql大致的执行比例。
更多的语句以及具体的含义:
--查看MySQL本次启动后的运行时间(单位:秒)
show status like 'uptime';
--查看select语句的执行数
show [global] status like 'com_select';
--查看insert语句的执行数
show [global] status like 'com_insert';
--查看update语句的执行数
show [global] status like 'com_update';
--查看delete语句的执行数
show [global] status like 'com_delete';
--查看试图连接到MySQL(不管是否连接成功)的连接数
show status like 'connections';
--查看线程缓存内的线程的数量。
show status like 'threads_cached';
--查看当前打开的连接的数量。
show status like 'threads_connected';
--查看当前打开的连接的数量。
show status like 'threads_connected';
--查看创建用来处理连接的线程数。如果Threads_created较大,你可能要增加thread_cache_size值。
show status like 'threads_created';
--查看激活的(非睡眠状态)线程数。
show status like 'threads_running';
--查看立即获得的表的锁的次数。
show status like 'table_locks_immediate';
--查看不能立即获得的表的锁的次数。如果该值较高,并且有性能问题,你应首先优化查询,然后拆分表或使用复制。
show status like 'table_locks_waited';
--查看创建时间超过slow_launch_time秒的线程数。
show status like 'slow_launch_threads';
--查看查询时间超过long_query_time秒的查询的个数。
show status like 'slow_queries';
2、定位执行效率较低的SQL语句
1、mysql慢查询
show variables like ‘%quer%’;
-slow_query_log是否记录慢查询。用long_query_time变量的值来确定“慢查询”。 -slow_query_log_file慢日志文件路径 -long_query_time慢日志执行时长(秒),超过设定的时间才会记日志
3、索引问题
1、索引的存储分类