有1M条记录时,针对select语句优化MySQL数据库:分别存储旧数据吗?

时间:2019-04-06 19:28:31

标签: php mysql query-optimization

我有一个网站,用户可以互相保持对话。每个注释都存储在MySQL数据库中。 DB有一个名为comment的表,该表带有一个引用对话的外键。 对话消息将分步返回给客户端,并使用“ limit”子句限制行(这对我的问题很重要)。例如,

SELECT * FROM `messages` WHERE `user_to_id` = 1 and `conversation_id` = 4 limit 10,5

下一个问题是:如果注释表中的记录过多,则选择上述查询会比较慢?
如果是的话,一种好的做法是将旧记录存储在单独的表中或服务器文件中,以便仅使用最近的注释来加快选择查询的速度吗?

1 个答案:

答案 0 :(得分:0)

如果查询SELECT * FROM `messages` WHERE `user_to_id` = 1 and `conversation_id` = 4 limit 10,5已经返回了最近条消息,那么您的limit子句可确保快速运行,因此,保留数百万条消息不会有问题结果数据集。