Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在mysql中存储按行排序的数据?_Mysql_Sql - Fatal编程技术网

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

在mysql中存储按行排序的数据?,mysql,sql,Mysql,Sql,我是否可以让mysql以数据库保持预定义顺序的方式插入数据 假设我列了一张高分表。在选择资料时,我总是可以使用ORDER BY,但当用户浏览高分列表时,1000000+数据集中的所有排序都会占用大量性能 我现在的想法是,我想以某种方式插入数据,即表格总是按分数描述排序,因此当用户浏览列表时,不必按工时排序。还有另一种解决方案。如果你按顺序存储这些记录,那就太单调了。另一种方法是,您可以在high score列上创建索引,以便mysql在内部创建一个索引,这样,当您尝试按顺序获取这些记录时,其性能

我是否可以让mysql以数据库保持预定义顺序的方式插入数据

假设我列了一张高分表。在选择资料时,我总是可以使用ORDER BY,但当用户浏览高分列表时,1000000+数据集中的所有排序都会占用大量性能


我现在的想法是,我想以某种方式插入数据,即表格总是按分数描述排序,因此当用户浏览列表时,不必按工时排序。

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


请创建高分列的索引。

表没有您应该依赖的固有顺序(它们可能会以插入的相同顺序或主键排序顺序返回行),因此如果您需要特定顺序,应始终使用
order by
子句

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

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

我已经在该列上建立了索引,但排序时仍然非常慢。所以我考虑了第二个表,它是每晚生成一次,并且是预订购的,所以选择东西不再需要订购者。如果你有一个(适当的)索引,使用
orderby
应该不会太慢。您是否比较了带有order by和不带有order by的相同查询?如果有疑问,您可以为这两个查询创建一个查询,以查看瓶颈在哪里。