我可以以某种方式使 mysql 以数据库保持预定义顺序的方式插入数据吗?
假设我制作了一个高分列表。选择内容时我总是可以使用 ORDER BY,但是当用户浏览高分列表时,1,000,000 多个数据集中的所有排序都会占用大量性能。
我现在的想法是我想以某种方式插入数据,表格总是按分数 desc 排序,所以当用户浏览列表时,所有的 ORDER BY 工作都不必发生。
表没有您应该依赖的固有顺序(巧合的是,它们可能以与插入它们的顺序相同的顺序或按主键排序顺序返回行),因此如果您需要特定的顺序,您应该始终使用ORDER BY
子句.
ORDER BY
但是,如果系统在您将拥有子句的列上有可用的索引,则系统可能能够更便宜地执行排序- 所以添加一个索引:
CREATE INDEX IX_Table_Scores ON `Table` (score desc);
还有另一种解决方案。如果你按顺序存储这么多记录,那就太乏味了。另一种方法是您可以在高分列上创建索引,以便 mysql 在内部创建一个索引,因此当您尝试按顺序获取这些记录时,其性能优于直接获取查询。
请创建高分列索引。