Как-то раньше не замечал если изменить запись в таблице и сделать select без указания порядка сортировки то эта обновленная запись будет выдана последней. У вас также? Версия 8.4
А почему тебя это беспокоит? Вообще-то субд может вообще как попало выдавать записи, если явно порядок сортировки не задан, и это соответствует стандарту.
ну вот, набижало умников. Ну и сидите в своей реляционной алгебре, а сортируйте на клиенте. удачи с top-n запросами.
Если обновленная запись выдается в конце - не значит ли это что при UPDATE ее перекладывают в конец, и большое количество UPDATE'ов приведет к тому, что даже то, что INSERT-нули одновременно, будет раскидано по всей таблице?
> Если обновленная запись выдается в конце - не значит ли это что при UPDATE ее перекладывают в конец, и большое количество UPDATE'ов приведет к тому, что даже то, что INSERT-нули одновременно, будет раскидано по всей таблице?
конечно. только не «перекладывают в конец», а кладут в свободное место, оно может быть и в середине таблицы если запись или версию записи оттуда удалили и vacuum пометил её как свободную. если внутри таблицы свободного места нет, то будет выделено место в конце таблицы и новая запись или новая версия записи попадёт туда.
>ну вот, набижало умников. Ну и сидите в своей реляционной алгебре, а сортируйте на клиенте. удачи с top-n запросами.
ORDER BY на что?
>Если обновленная запись выдается в конце - не значит ли это что при UPDATE ее перекладывают в конец, и большое количество UPDATE'ов приведет к тому, что даже то, что INSERT-нули одновременно, будет раскидано по всей таблице?
А это тебя не должно волновать, пока нет необходимости в оптимизации I/O.