(澳门银河官网网址) mysql sql优化
澳门银河官网
澳门银河官网
当前位置 : 澳门银河官网 > 澳门银河官网网址

(澳门银河官网网址) mysql sql优化

table article{
    id:BIGINT20
    name:VARCHAR20,
    state:TINYINT1;//状态,0、正常,1、删除
    ...,
    is_top:TINYINT1,//是否置顶
    theme:INT,//主题
}

有这样一个需求:
查询article列表,排序优先级,置顶、主题相同、id(从大到小)。

现在写的sql:

SELECT id
FROM article
WHERE state=0
ORDER BY is_top DESC,theme=1 DESC,id DESC LIMIT 0,10

查看执行计划

请教如何优化?

你这个查询没有条件过滤的吗?接近20W数据就这样查肯定有问题的呀!先把条件写上再看执行计划!

mysql尽量将其当做存储引擎来做,不要当做搜索引擎。

你的这个case尝试去做一些优化。
可以优化点
1:将置顶部分单独拎出来。用一个单独的sql去查置顶的article,这部分可以采用缓存,可以节省大量响应时间
2:id字段作为primary key
3:state字段添加index
4:theme字段添加index

通过上面优化步骤后,你再试试

广告位

澳门银河官网