PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Поръчката по in view гарантира ли реда на select?

Не можете да разчитате на реда на редовете във всяка заявка, която няма изричен ORDER BY клауза. Ако направите заявка за подреден изглед, но не включите ORDER BY клауза, бъдете приятно изненадани, ако са в правилния ред, и не очаквайте да се случи отново.

Това е така, защото оптимизаторът на заявки има свободен достъп до редове по различни начини в зависимост от заявката, статистиката на таблицата, броя на редовете, индексите и т.н. Ако знае, че заявката ви няма ORDER BY клауза, можете свободно да игнорирате реда на реда, за да (кашляте) за по-бързо връщане на редове.

Малко извън темата. . .

Редът на сортиране не е непременно идентичен в различните платформи дори за добре познати съпоставки. Разбирам, че сортирането на UTF-8 в Mac OS X е особено странно. (Разработчиците на PostgreSQL го наричат ​​счупен .) PostgreSQL разчита на strcoll(), което разбирам, че разчита на локалите на ОС.

Не ми е ясно как PostgreSQL 9.1 ще се справи с това. В 9.1 можете да имате множество индекси, всеки с различна колация . ORDER BY, който не указва сортиране, обикновено ще използва сортирането на колоните на базовата таблица, но какво ще направи оптимизаторът с индекс който указва различно сортиране от неиндексирана колона в основната таблица?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. йерархична сума в PostgreSQL

  2. Получаване на въведени резултати от необработен SQL ActiveRecord

  3. Asp.net MVC4, PostgreSQL и SimpleMembership

  4. Компресиране на текст в PostgreSQL

  5. Разработване на PostgreSQL за Windows, част 1