MySQL知识整理

mysql
常用工具
1)show processlist
查看正在执行的sql
2)show profile分析SQL
先用select @@profiling查看结果,结果为1,说明已经开启。
show profiles 查看Sql耗时。
show profile for query QueryID 查看具体耗时的信息
3)Trace分析优化器的执行计划
使用set optimizer_trace='enabled=on',end_markers_in_json=on; 语句打开trace分析
查看具体的优化器执行计划:
select * from `information_schema`.optimizer_trace
4)利用工具查询数据库的读写比例
show global status like 'Com_______' 这个SQL可以查看select、update、insert、delete都被执行了多少次
show global status like 'Innodb_row_%' 除了查看Innodb的读写情况,还可以查看锁的情况。


查询在什么时候不走索引
主要三种情况
1)不满足走索引的条件,常见的情况有
1.1)不满足最左匹配原则
1.2)查询条件使用了函数
1.3)or操作有一个字段没有索引
1.4)使用like条件以%开头
2)走索引效率低于全表扫描,常见的情况有
2.1)查询条件对null做判断,而null的值很多
2.2)一个字段区分度很小,比如性别、状态
3)需要回表的查询结果集过大,超过了配置的范围

网上的58Mysql军规,适用于互联网、大数据量的业务。

to be continued

原文地址:https://www.cnblogs.com/lihao007/p/14225413.html