php - 1M条记录时优化MySQL数据库select语句 : store old data separately?

标签 php mysql query-optimization

我有一个网站,用户可以在其中保持彼此的对话。每个评论都存储在 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/

相关文章:

javascript - 满足 PHP 条件时显示弹出窗口

javascript - 如何使用php将动态数据插入json

MySQL 在一个表中查找在另一个表中没有列值的记录

sql - 优化具有多个连接的 SQL 查询

mysql - 请优化多连接查询

PostgreSQL 多列索引未完全使用

php - 数据库输出未显示。获取 else 语句

PHP:管理实体类型的设计模式

python - 使用 Python 和 MySQL 通过中间查找大量插入数据

mysql - 获取 QODBC 中的数据并将其转换为十进制数