SELECT * FROM t_user WHERE email='217@xxg.com'; --1.725 --加email索引之后 0.003
SELECT * FROM t_user WHERE email='316@xxg.com' 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 查看是否走索引