我今天在postgres数据库中发现了一个问题,我有一个带主键的实体,我存储的内容有1,2,3,4等等。
我今天再次检查了数据库,发现所有的ID都搞乱了,比如4,2,1等等。它们不是存储顺序。
我用这种表做的唯一事情是保存新数据并对实体进行查询。我的问题是,可能导致数据库混乱的原因是什么?
我怎么能避免这种情况发生?
答案 0 :(得分:3)
您从根本上误解了数据库的工作原理。表中没有没有订单。当您告诉使用ORDER BY
时,数据库会对行进行排序。否则它可以按照它喜欢的任何顺序将它们吐出来,这取决于获取它们的最快方法。
可以通过UPDATE
替换行版本VACUUM
等来更改物理行顺序。