sql >> Database >  >> RDS >> PostgreSQL

Verhoogt het instellen van NOT NULL op een kolom in postgresql de prestaties?

NOT NULL instellen heeft op zich geen effect op de prestaties. Een paar cycli voor de controle - niet relevant.

Maar u kunt de prestaties verbeteren door NULL's te gebruiken in plaats van dummy-waarden. Afhankelijk van het gegevenstype kunt u veel schijfruimte en RAM besparen , waardoor .. alles wordt versneld.

De null-bitmap wordt alleen toegewezen als er NULL-waarden zijn in de rij . Het is een beetje voor elke kolom in de rij (NULL of niet). Voor tabellen tot 8 kolommen is de null-bitmap in feite volledig gratis, met een reservebyte tussen tuple-koptekst en rijgegevens. Daarna wordt ruimte toegewezen in veelvouden van MAXALIGN (meestal 8 bytes, die 64 kolommen beslaan). Het verschil gaat verloren aan opvulling. U betaalt dus de volledige (lage!) prijs voor de eerste NULL-waarde in elke rij . Extra NULL-waarden kunnen alleen ruimte besparen.

De minimale opslagvereiste voor elke niet-null-waarde is 1 byte (boolean , "char" , ...) of meestal veel meer, plus (mogelijk) opvulling voor uitlijning. Lees meer over gegevenstypen of controleer de bloederige details in de systeemtabel pg_type .

Meer over null-opslag:



  1. krijg mime-type afbeelding

  2. Bereken jaar vanaf datumverschil in Oracle

  3. Hoe kan ik ervoor zorgen dat een subquery slechts één rij retourneert?

  4. REGEXP met PDO Mysql