mysql 索引 create_time 加explain关键字是否走索引

SELECT * FROM t_user WHERE email='[email protected]';  --1.725 --加email索引之后 0.003

SELECT * FROM t_user WHERE email='[email protected]' LIMIT 1; 0.001  --加email索引之后 0.002

结论:用户数据量很大的情况下 如果查询加了limit 无索引 根据唯一列查询 加索引和不加索引 查询差距不大 会走主键 聚集索引  只要到上千万或是上亿的数据的时候才会有影响

尽量用户唯一的字段查询会很快

--按时间降序全表查询 不加limit

SELECT * FROM t_user  order by create_time desc  --11.184

SELECT * FROM t_user  order by create_time desc limit 1,10 --加limit 2.144

结论:在500万测试数据,没有时间索引的况下,直接order by  create_time 会全表扫描 不建议如此写会拖垮数据库 必须用到降序的时候一定加上limit 限制返回条数

--创建create_time 索引之后

SELECT * FROM t_user  order by create_time desc  --11.156

SELECT * FROM t_user  order by create_time desc limit 1,10 0.002

结论:创建create_time 时间索引 但是 直接order_by 时间 还是会导致全表扫描,加不加索引没用,所以必须加上limit 受影响行数 才会走索引      explain SELECT * FROM t_user  order by create_time desc limit 1,10 0.002    语句加 explain 查看是否走索引

猜你喜欢

转载自www.cnblogs.com/lykbk/p/dsfdsfsdfdsfsd34543545435.html