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

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日

悬赏问题

  • ¥15 Stata 面板数据模型选择
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用