gpt4 book ai didi

mysql - 加速 ORDER BY

转载 作者:行者123 更新时间:2023-11-29 01:44:36 27 4
gpt4 key购买 nike

我有一个 mysql 表,其中存储有 4 列的成员消息:

  • message_id(主键,自增)
  • sender_id( key )
  • receiver_id( key )
  • 消息内容

我做了很多 SELECT,我总是按 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”了。那可能吗 ?或者还有其他解决方案吗?

谢谢

最佳答案

  1. 3333 指定为整数,而不是字符串(删除引号)
  2. message_id 列添加到 sender_id 索引(如果您使用 myisam,因为在 innodb 中它是由所谓的“clustered index”自动添加的)

关于mysql - 加速 ORDER BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10272356/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com