我有一个存储成员消息的 mysql 表,其中包含 4 列:
- message_id(主键,自动递增)
- sender_id(键)
- receiver_id(键)
- 消息内容
我做了很多SELECT
s 并且我总是按 s 对它们进行排序message_id DESC
,查询如下:
SELECT message_content
FROM table
WHERE sender_id='3333'
ORDER BY message_id DESC
LIMIT 30
在这样的查询中,这ORDER BY
是昂贵的(它通常必须对数千行进行排序,当每秒乘以许多请求时会产生一些负载)
有没有办法避免每次都对表格进行排序?由于我总是希望以相同的顺序检索结果,并且由于 message_id 列不会随时间变化,因此如果每个新表行都插入到第一个位置,则表将始终被排序,我不需要任何“ORDER BY”了。那可能吗 ?还是有其他解决方案?
谢谢