进学阁

业精于勤荒于嬉,行成于思毁于随

0%

慢查询优化

索引和慢查询

慢查询的定义:

主要依据SQL语句的执行时间,它把当前语句的执行时间跟long_query_time 参数做比较,如果语句的执行时间 > long_query_time,就会把这条执行语句记录到慢查询日志里面。long_query_time 参数的默认值是 10s,该参数值可以根据自己的业务需要进行调整。

判断是否应用了索引:

通过 explain命令分析查看,检查结果中的 key 值,是否为NULL。

提高索引过滤性

假如有一个5000万记录的用户表,通过sex=’男’索引过滤后,还需要定位3000万,SQL执行速度也不会很快。其实这个问题涉及到索引的过滤性,比如1万条记录利用索引过滤后定位10条、100条、1000条,那他们过滤性是不同的。索引过滤性与索引字段、表的数据量、表设计结构都有关系。

分页查询优化

在查询记录时,如果查询记录量相同,偏移量超过100后就开始随着偏移量增大,查询时间急剧的增加。(这种分页查询机制,每次都会从数据库第一条记录开始扫描,越往后查询越慢,而且查询的数据越多,也会拖慢总查询速度。)这时候有几个优化方法

利用覆盖索引优化

在书写sql语句的时候不要写

select * from table

使用索引内部的字段

利用子查询优化

select * from user where id>= (select id from user limit 10000,1limit 100;