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

Настройката NOT NULL за колона в postgresql увеличава ли производителността?

Настройка NOT NULL няма ефект per se върху производителността. Няколко цикъла за проверка - без значение.

Но можете да подобрите производителността, като действително използвате NULL вместо фиктивни стойности. В зависимост от типовете данни можете да спестите много дисково пространство и RAM , като по този начин ускорява .. всичко.

Нулевата растерна карта се разпределя само ако има NULL стойности в реда . Това е един бит за всеки колона в реда (NULL или не). За таблици до 8 колони нулевата растерна графика е ефективно напълно безплатна, използвайки резервен байт между заглавката на кортежа и данните на реда. След това пространството се разпределя кратно на MAXALIGN (обикновено 8 байта, покриващи 64 колони). Разликата се губи от подложката. Така че плащате пълната (ниска!) цена за първата NULL стойност във всеки ред . Допълнителните NULL стойности могат само да спестят място.

Минималното изискване за съхранение за всяка ненулева стойност е 1 байт (boolean , "char" , ...) или обикновено много повече, плюс (евентуално) подложка за подравняване. Прочетете за типове данни или проверете кървавите подробности в системната таблица pg_type .

Повече за нулевото хранилище:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. psql код за връщане, ако са намерени нула редове

  2. JPA картографиране на няколко реда с ElementCollection

  3. Barman Cloud – Част 1:Архив на WAL

  4. pgFincore 1.2, разширение PostgreSQL

  5. Попълнете таблицата с данни за липсваща дата (postgresql, червено отместване)