存储在mysql中按行排序的数据?

时间:2013-07-30 07:07:55

标签: mysql sql

我可以以某种方式使mysql以数据库保持预定义顺序的方式插入数据吗?

假设我制作了一个高分榜单。在选择内容时我总是可以使用ORDER BY,但是当用户浏览高分列表时,1,000,000多个数据集中的所有排序都会有很多性能。

我的想法是,我想以某种方式插入数据,表格始终按分数desc排序,因此当用户浏览列表时,不必进行所有ORDER BY工作。

2 个答案:

答案 0 :(得分:2)

表没有你应该依赖的固有顺序(它们可能巧合地按照它们插入的顺序或主键排序顺序返回行),所以如果你需要在特定订单中,您应始终使用ORDER BY子句。

但是,如果系统上有可用的ORDER BY子句列,则系统可以更便宜地执行排序 - 因此添加索引:

CREATE INDEX IX_Table_Scores ON `Table` (score desc);

答案 1 :(得分:0)

还有另一种解决方案。如果你按顺序存储这些记录,那就太乏味了。另一种方法是你可以在高分列上创建索引,这样mysql在内部创建一个索引,所以当你尝试按顺序获取这些记录时,它的性能优于直接获取查询。

请创建高分列索引。