我正在为我的游戏创建一个存储在数据库中的高分表,但是我想知道最好的方法是存储这样的表。每次添加新的分数时,应该使用该表还是应该对查询接收的数据进行排序?
在检索数据时,服务器似乎更容易排序,而不是每次更新表。
发布于 2014-02-05 04:09:06
关系数据库(如MySQL、Oracle、PostgreSQL等)中的行不按任何顺序维护。在关系数据库理论中,除非查询包含ORDER BY子句,否则不按指定的顺序返回结果集。每次检索数据时(必须)应用任何排序。
在某些情况下,实现可以按某种顺序存储数据,但它们不需要这样做。实际上,如果您对相同的数据运行两次完全相同的查询,就不能保证数据将以相同的顺序返回。
换句话说,不能将存储顺序强加于数据,而只能在执行查询时将顺序强加于结果集。
发布于 2014-02-05 03:59:09
我建议对MySQL查询中的数据进行排序。正如您所说,只在需要时进行排序比较容易,而不是在添加所有记录时。
发布于 2014-02-05 04:49:05
表中的数据未排序。关系表中行的实际物理顺序尚未确定。但是,一些数据库将根据聚集索引对磁盘上的行进行排序。
如果您的表包含几千行,那么两种方法在性能上并没有太大的不同。但是,如果表大约超过10,000行,则可以使用聚集索引。(关于聚集索引( http://www.karafilis.net/sql-indexing-part2/)的参考)。
https://stackoverflow.com/questions/21568352
复制相似问题