MySQL--18.使用 explain 优化 SQL 语句(select 语句)的基本流程

个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈 

18.1 用命令抓取慢 SQL 语句,然后用 explain 命令查看查询语句是否走的索引查询

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​

18.2 设置配置参数记录慢查询语句

log_query_time = 2 <==查询时间超过 2 秒,记录到 log 里
log_queries_not_using_indexs <==没有走索引的语句,记录到 log 里
log-slow-queries = /data/3306/slow.log​

18.3 对抓取到的慢查询语句用 explain 命令检查索引执行情况

例如:

explain select * from test where name=’oldboy’\G;​

18.4 对需要建索引的条件列建立索引

大表不能高峰值建立索引,300 万记录
18.5 切割慢查询日志,去重分析后发给大家

关于 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​

附Java/C/C++/机器学习/算法与数据结构/前端/安卓/Python/程序员必读/书籍书单大全:

(点击右侧 即可打开个人博客内有干货):技术干货小栈
=====>>①【Java大牛带你入门到进阶之路】<<====
=====>>②【算法数据结构+acm大牛带你入门到进阶之路】<<===
=====>>③【数据库大牛带你入门到进阶之路】<<=====
=====>>④【Web前端大牛带你入门到进阶之路】<<====
=====>>⑤【机器学习和python大牛带你入门到进阶之路】<<====
=====>>⑥【架构师大牛带你入门到进阶之路】<<=====
=====>>⑦【C++大牛带你入门到进阶之路】<<====
=====>>⑧【ios大牛带你入门到进阶之路】<<====
=====>>⑨【Web安全大牛带你入门到进阶之路】<<=====
=====>>⑩【Linux和操作系统大牛带你入门到进阶之路】<<=====

天下没有不劳而获的果实,望各位年轻的朋友,想学技术的朋友,在决心扎入技术道路的路上披荆斩棘,把书弄懂了,再去敲代码,把原理弄懂了,再去实践,将会带给你的人生,你的工作,你的未来一个美梦。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值