qq_41265012 2018-06-01 06:25 采纳率: 70%
浏览 1694
已采纳

mysql 多个order 是不是会导致索引失效

我发现网站使用order by id desc的时候,效率很高,使用order by id desc,time desc 数据库cpu100%了

  • 写回答

4条回答 默认 最新

  • xuwen666 2018-06-01 06:30
    关注

    a.alter table table_name disable keys b.loading data c.alter table table_name enable keys 对于Innodb: a.将要导入的数据按照主键排序 b.set unique_checks=0,关闭唯一性校验 c.set autocommit=0,关闭自动提交
    索引并不是时时都会生效的,比如以下几种情况,将导致索引失效:
    注意:要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引
    2.对于多列索引,不是使用的第一部分,则不会使用索引
    3.like查询是以%开头
    4.如果列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引
    5.如果mysql估计使用全表扫描要比使用索引快,则不使用索引
    此外,查看索引的使用情况
    show status like ‘Handler_read%’;

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已采纳回答 8月15日