我正在为我的游戏创建一个存储在数据库中的高分表,但我想知道存储这些表的最佳实践。 是否应该在每次添加新分数时使用该表,还是应该对查询接收的数据进行排序?
似乎服务器上更容易在检索数据时进行排序,而不是每次都更新表。
答案 0 :(得分:1)
我建议在MySQL查询中对数据进行排序。正如您所说,只在需要时进行排序更容易,而不是在添加每条记录时进行排序。
答案 1 :(得分:1)
表格中的数据未分类。关系表中行的实际物理顺序未确定。但是,某些数据库将根据聚簇索引在磁盘上排序行。
如果您的表包含几千行,则两种方法在性能上没有太大差别。但是,如果表的行数超过10,000行,则可以使用聚簇索引。 (有关聚集索引的参考,http://www.karafilis.net/sql-indexing-part2/)。
答案 2 :(得分:0)
MySQL,Oracle,PostgreSQL等关系数据库中的行不按任何顺序维护。在关系数据库理论中,除非查询包含ORDER BY
子句,否则将以无指定顺序返回结果集。每次检索数据时都必须(必须)应用任何排序。
在某些情况下,实现可能会按某种顺序存储数据,但不要求它们这样做。实际上,如果在同一数据上运行两次完全相同的查询,则无法保证数据将以相同的顺序返回。
换句话说,您不能对数据强制执行存储顺序,只能在执行查询时对结果集执行命令。