2个索引一个是fenlei,复合索引分类fenleiid字段和status字段,status字段内容几乎都是1。
另一个索引time,单独time时间戳字段。
语句1:
SELECT *
FROM topic
WHERE fenleiid IN (98)
AND status = 1
ORDER BY id DESC
LIMIT 0, 10
语句2:
SELECT *
FROM topic
WHERE fenleiid IN (98)
AND status = 1
ORDER BY time DESC
LIMIT 0, 10
为什么按照时间排序,会造成mysql cpu100%。而按照id就非常快。
如果需要用time做排序,我应该怎么建索引。
1、主键是有索引的
2、主键带的是主键索引,你试一下order by primary key和不带,会发现时间是一样的,因为数据在磁盘里存放的顺序和主键索引存放的顺序一致
时间没有建立索引,执行就会很慢。
ID是关键字段,就快啊,时间不是关键字,就慢