我有一个网站,用户可以在其中保持彼此的对话。每个评论都存储在 MySQL 数据库中。 DB 有一个名为 comment 的表,其中包含一个指向 session 的外键。 对话的消息按步骤返回给客户端,用“limit”子句限制行(这对我的问题很重要)。例如,
SELECT * FROM `messages` WHERE `user_to_id` = 1 and `conversation_id` = 4 limit 10,5
我的下一个问题是:如果comments表中的记录太多,像上面这样的select查询会不会比较慢?
如果是,将旧记录存储在单独的表或服务器文件中以便仅使用最近的评论加快选择查询的速度是一种好习惯吗?
最佳答案
如果查询 SELECT * FROM `messages` WHERE `user_to_id` = 1 and `conversation_id` = 4 limit 10,5
已经返回最新消息,那么您的 limit
子句确保速度,在限制生成的数据集时保留数百万条消息应该没有问题。
关于php - 1M条记录时优化MySQL数据库select语句 : store old data separately?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55552699/