首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库表是在检索之前还是之后排序?

数据库表是在检索之前还是之后排序?
EN

Stack Overflow用户
提问于 2014-02-05 03:56:56
回答 3查看 849关注 0票数 1

我正在为我的游戏创建一个存储在数据库中的高分表,但是我想知道最好的方法是存储这样的表。每次添加新的分数时,应该使用该表还是应该对查询接收的数据进行排序?

在检索数据时,服务器似乎更容易排序,而不是每次更新表。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-05 04:09:06

关系数据库(如MySQL、Oracle、PostgreSQL等)中的行不按任何顺序维护。在关系数据库理论中,除非查询包含ORDER BY子句,否则不按指定的顺序返回结果集。每次检索数据时(必须)应用任何排序。

在某些情况下,实现可以按某种顺序存储数据,但它们不需要这样做。实际上,如果您对相同的数据运行两次完全相同的查询,就不能保证数据将以相同的顺序返回。

换句话说,不能将存储顺序强加于数据,而只能在执行查询时将顺序强加于结果集。

票数 2
EN

Stack Overflow用户

发布于 2014-02-05 03:59:09

我建议对MySQL查询中的数据进行排序。正如您所说,只在需要时进行排序比较容易,而不是在添加所有记录时。

票数 1
EN

Stack Overflow用户

发布于 2014-02-05 04:49:05

表中的数据未排序。关系表中行的实际物理顺序尚未确定。但是,一些数据库将根据聚集索引对磁盘上的行进行排序。

如果您的表包含几千行,那么两种方法在性能上并没有太大的不同。但是,如果表大约超过10,000行,则可以使用聚集索引。(关于聚集索引( http://www.karafilis.net/sql-indexing-part2/)的参考)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21568352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档