在mysql中存储按行排序的数据?
我是否可以让mysql以数据库保持预定义顺序的方式插入数据 假设我列了一张高分表。在选择资料时,我总是可以使用ORDER BY,但当用户浏览高分列表时,1000000+数据集中的所有排序都会占用大量性能在mysql中存储按行排序的数据?,mysql,sql,Mysql,Sql,我是否可以让mysql以数据库保持预定义顺序的方式插入数据 假设我列了一张高分表。在选择资料时,我总是可以使用ORDER BY,但当用户浏览高分列表时,1000000+数据集中的所有排序都会占用大量性能 我现在的想法是,我想以某种方式插入数据,即表格总是按分数描述排序,因此当用户浏览列表时,不必按工时排序。还有另一种解决方案。如果你按顺序存储这些记录,那就太单调了。另一种方法是,您可以在high score列上创建索引,以便mysql在内部创建一个索引,这样,当您尝试按顺序获取这些记录时,其性能
我现在的想法是,我想以某种方式插入数据,即表格总是按分数描述排序,因此当用户浏览列表时,不必按工时排序。还有另一种解决方案。如果你按顺序存储这些记录,那就太单调了。另一种方法是,您可以在high score列上创建索引,以便mysql在内部创建一个索引,这样,当您尝试按顺序获取这些记录时,其性能优于直接获取查询
请创建高分列的索引。表没有您应该依赖的固有顺序(它们可能会以插入的相同顺序或主键排序顺序返回行),因此如果您需要特定顺序,应始终使用
order by
子句
但是,如果系统在列上有一个索引,您将在该列上有ORDER BY
子句,则系统可以更便宜地执行排序-因此添加一个索引:
CREATE INDEX IX_Table_Scores ON `Table` (score desc);
我已经在该列上建立了索引,但排序时仍然非常慢。所以我考虑了第二个表,它是每晚生成一次,并且是预订购的,所以选择东西不再需要订购者。如果你有一个(适当的)索引,使用
orderby
应该不会太慢。您是否比较了带有order by和不带有order by的相同查询?如果有疑问,您可以为这两个查询创建一个查询,以查看瓶颈在哪里。