Mysql 加速订货
我有一个mysql表,它用4列存储成员消息:Mysql 加速订货,mysql,Mysql,我有一个mysql表,它用4列存储成员消息: 消息id(主键,自动递增) 发送者id(密钥) 接收器id(钥匙) 信息内容 我做了大量的选择s,我总是按照message\u id DESC对它们进行排序,查询如下: SELECT message_content FROM table WHERE sender_id='3333' ORDER BY message_id DESC LIMIT 30 在这样的查询中,orderby代价很高(它通常需要对数千行进行排序,这在每秒乘以许多请求
- 消息id(主键,自动递增)
- 发送者id(密钥)
- 接收器id(钥匙)
- 信息内容
选择
s,我总是按照message\u id DESC
对它们进行排序,查询如下:
SELECT message_content
FROM table
WHERE sender_id='3333'
ORDER BY message_id DESC
LIMIT 30
在这样的查询中,orderby
代价很高(它通常需要对数千行进行排序,这在每秒乘以许多请求时会产生一些负载)
有没有办法避免每次都要对表格进行排序?由于我总是希望以相同的顺序检索结果,并且由于message_id列不会随时间而改变,因此如果每个新表行都插入到第一个位置,那么表将始终被排序,我不再需要任何“order BY”。
可能吗?还是有其他解决方案
多谢各位
3333
指定为整数,而不是字符串(删除引号)message\u id
列添加到sender\u id
索引中(如果使用myisam,因为在innodb中它是由所谓的“”自动添加的)3333
指定为整数,而不是字符串(删除引号)message\u id
列添加到sender\u id
索引中(如果使用myisam,因为在innodb中它是由所谓的“”自动添加的)仅供参考:对于RDBMS来说,数千行通常是儿童游戏。索引几乎总是性能问题的答案。仅供参考:对于RDBMS来说,数千行通常是小菜一碟。索引几乎总是性能问题的答案。谢谢。将3333指定为整数是否会提高性能?或者没有引号还有其他原因吗?message_id已经是主键了,所以重新为它编制索引可能不会有多大帮助。@Marc B:如果他使用innodb就好了。但事实上,我完全忘记了it@Eric:有时会导致“奇怪”behaviour@Eric:因此,将
message\u id
添加到sender\u id
索引应该会有所帮助。谢谢。将3333指定为整数是否会提高性能?或者没有引号还有其他原因吗?message_id已经是主键了,所以重新为它编制索引可能不会有多大帮助。@Marc B:如果他使用innodb就好了。但事实上,我完全忘记了it@Eric:有时会导致“奇怪”behaviour@Eric:因此,将message\u id
添加到sender\u id
索引应该会有所帮助。