SQL 优化

来源:互联网 发布:全知之眼图片 编辑:程序博客网 时间:2024/05/17 06:45

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、索引的存储分类

原创粉丝点击