解决方案 »

  1.   

    当where 后使用  等号,不等号 ,between  ...  and  不能使用索引 。 组合索引使用原则是 最左边原则 ,有左右往右匹配,如果左边没有则不适用索引 。
    索引被用到才会提升查询速度 ,另外你的 “regTime”  是 索引名称吗 ?能否把表结构共享一下 ,顺便说明要求 ,也许大牛们会有其他方法 解决此类问题 。
      

  2.   

    看看执行计划呢。估计有filesort吧
      

  3.   

    你这是什么理论
    添加 索引 ,使用不同匹配关键字 ,使用 explain 分析一下 就知道了 !
      

  4.   

    很可能是你建的联合索引没派上用场,用explain分析或尝试创建单个regTime 索引,然后用force index查询SELECT 
      viewCount,
      supplyId,
      productName,
      price,
      imgUri,
      origin,
      stockNum
    FROM
      ms_supply FORCE INDEX (regTime索引名)
    WHERE STATUS = 1 
      AND cateId BETWEEN 'E'  AND 'EZZZZZZ' 
    ORDER BY regTime DESC 
    LIMIT 35 
      

  5.   

    create index xx on ms_supply(status,cateId);
    create index yy on ms_supply(status,regTime);
    创建这两个索引,至少MYSQL会用哪个,则看数据分布了。