【发布时间】:2013-10-09 22:09:05
【问题描述】:
早安,
我有一个包含几百万行的表,我需要查看按时间戳排序的数据。
当我尝试这样做时
SELECT * FROM table ORDER BY date DESC offset 0 LIMIT 200
MySQL 将对所有数据进行排序,然后响应 200 行,这是一个性能问题。因为每次我想滚动页面时都订购所有东西是不明智的!
您对我们如何提高性能有任何想法吗?
【问题讨论】:
-
你能解释一下为什么
offset 0吗? -
记录是否总是按时间顺序添加到表中?在这种情况下,只需将自动增量整数列
RowNumber添加到表中,为其添加索引,然后使用WHERE RowNumber BETWEEN 0 AND 200。 -
@7alhashmi 0 只是变量的一个例子,它可能是任何东西!它是一个寻呼系统!
-
@Dan 未排序,我无法编辑表格!
-
如果您因为没有权限而无法编辑表格,请创建自己的表格并将数据导入其中。能够在排序依据的列上添加索引非常重要。
标签: mysql sql performance select sql-order-by