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

Какъв е редът по подразбиране на списък, върнат от извикване на филтър на Django?

Няма НЯМА ПОРЪЧКА ПО ПОДРАЗБИРАНЕ , точка, която не може да бъде подчертана достатъчно, защото всеки го прави погрешно.

Таблицата в база данни не е обикновена html таблица, тя е неподреден набор от кортежи. Често изненадва програмистите, които използват само MySQL, защото в тази конкретна база данни редът на редовете често е предвидим, тъй като не се възползва от някои усъвършенствани техники за оптимизация. Например, не е възможно да се знае кои редове ще бъдат върнати или техния ред в някоя от следните заявки:

select * from table limit 10
select * from table limit 10 offset 10
select * from table order by x limit 10

В последната заявка редът е предвидим само ако всички стойности в колона x са уникални. RDBMS е свободна да връща всички редове в произволен ред, стига да отговаря на условията на оператора select.

Въпреки че можете да добавите подреждане по подразбиране на ниво Django, което го кара да добавя поръчка по клауза към всяка неподредена заявка:

class Table(models.Model):
    ...
    class Meta:
        ordering = ['name']

Имайте предвид, че това може да е влачене на производителността, ако по някаква причина не се нуждаете от подредени редове.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вземете стойности от първия и последния ред за група

  2. Къде PostgreSQL съхранява конфигурационни/conf файлове?

  3. Алтернативен изходен формат за psql

  4. PostgreSQL създаде таблица, ако не съществува

  5. Отидете на заявка LIKE на postgresql