开发者社区> 问答> 正文

order by及索引之间的问题

某梦的系统,数据23.8万,调用最新文章:

SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule, 
        tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath         
        FROM `dede_archives` arc LEFT JOIN `dede_arctype` tp on arc.typeid=tp.id         
         WHERE  arc.typeid IN (6) And  arc.arcrank > -1    ORDER BY arc.sortrank desc  LIMIT 0,10; 

去掉order by 执行很快,加上5~7秒之间。
表索引:
操作 键名 类型 唯一 Packed 字段 基数 整理 Null Comment
编辑 删除 PRIMARY BTREE 是 否 id 238281 A
编辑 删除 channel BTREE 否 否 channel 1 A
编辑 删除 ismake BTREE 否 否 ismake 3 A
编辑 删除 sortrank BTREE 否 否 sortrank 238281 A
编辑 删除 typeid BTREE 否 否 typeid 105 A
EXPLAIN结果:
`id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE arc index typeid sortrank 4 NULL 215 Using where
1 SIMPLE tp const PRIMARY PRIMARY 2 const 1 `
尝试组合索引:typeid、arcrank、sortrank,执行时间没变化。尝试不同组合索引无果。

展开
收起
落地花开啦 2016-02-27 17:23:37 2698 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    你拆分SQL语句. 分2条.
    第一条查ids
    第二条查数据

    2019-07-17 18:49:06
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
对 2000 多亿条数据做一次 group by 需要多久? 立即下载
对2000多亿条数据做一次Group By 需要多久 立即下载
RowKey与索引设计:技巧与案例分析 立即下载