1 在数据库命令行里面操作
mysql> show full processlist; +----+------+-----------+--------+---------+------+-------+-----------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+------+-----------+--------+---------+------+-------+-----------------------+ | 13 | root | localhost | oldboy | Query | 0 | NULL | show full processlist | +----+------+-----------+--------+---------+------+-------+-----------------------+ 1 row in set (0.00 sec)?
2 在 linux 命令行操作
[root@mysql 3306]# mysql -u root -ppcwangjixuan -S /mysqldata/3306/mysql.sock -e "show fullprocesslist"|grep -vi "sleep" Id UserHostdb Command Time StateInfo 15 root localhost NULL Query 0 NULL show full processlist?
log_query_time = 2 <==查询时间超过 2 秒,记录到 log 里 log_queries_not_using_indexs <==没有走索引的语句,记录到 log 里 log-slow-queries = /data/3306/slow.log?
例如:
explain select * from test where name=’oldboy’\G;?
大表不能高峰值建立索引,300 万记录
关于 mysql 的配置文件参数设置(my.cnf)
[mysqld] long_query_time = 1 log-slow-queries = /data/3306/slow.log log_queries_not_using_indexs 关于日志切割脚本 mv /data/3306/slow.log /opt/$(date +%F)_slow.log mysqladmin –uroot –ppcwangjixuan –S /data/3306/mysql.sock flush-logs
18.使用 explain 优化 SQL 语句(select 语句)的基本流程
原文:https://www.cnblogs.com/hackerlin/p/12539889.html