Postgres和Oracle是否维护插入顺序?

时间:2016-05-04 07:43:29

标签: oracle postgresql data-structures

我正在尝试存储一个集合(保留其元素的顺序)。我将迭代集合并将元素逐个插入到DB中。假设我想逐个检索元素。我能够以正确的插入顺序检索元素吗?

2 个答案:

答案 0 :(得分:2)

不,数据库表是面向堆的。因此理论上在单个写入器模式中,当所有行的大小相等时,此“可以”工作。但是当你在某个页面中留下一些空闲空间然后插入较短的行时,它将被放入该页面。

所以请不要相信任何数据库中的插入顺序。包括MySQL。

答案 1 :(得分:0)

不幸的是,事实并非如此。 如果要按顺序检索行,则应使用序列(如Id列,主键)和有关此id列的order by子句。

Oracle内置的rowid伪列包含行号信息;但你不应该依赖于此。表可以启用行移动属性。