PostgreSQLLa base de données la plus sophistiquée au monde.

Version anglaise

K. Limites PostgreSQL

Tableau K.1, « Limitations de PostgreSQL™ » décrit les diverses limites dures de PostgreSQL™. Cependant, les limites physiques telles que les limitations de performance ou l'espace disque disponible peuvent s'appliquer avant que des limites dures absolues soient atteintes.

Tableau K.1. Limitations de PostgreSQL

Élément Limite supérieure Commentaire
taille de la base de données illimitée  
nombre de bases de données 4 294 950 911  
relations par base de données 1 431 650 303  
taille d'une relation 32 To Avec un BLCKSZ par défaut de 8192 octets
lignes par table limité par le nombre de lignes qui peuvent être contenus dans 4 294 967 295 blocs  
colonnes par table 1600 aussi limité par la taille des lignes contenues dans un simple bloc ; voir la note ci dessous
taille de champs 1 Go  
longueur de l'identifiant 63 octets peut être augmenté en recompilant PostgreSQL
index par table illimitée limité par le nombre maximum de relations par base de données
colonnes par index 32 peut être augmenté en recompilant PostgreSQL
clé de partition 32 peut être augmenté en recompilant PostgreSQL

Le nombre maximum de colonnes pour une table est d'autant plus réduit que la ligne stockée doit être contenu dans un simple bloc de 8192 octets. Par exemple, sans compter l'entête d'une ligne, une ligne constituée de 1600 colonnes de type int consommera 6400 octets et peut être stocké dans un bloc, mais une ligne constituée de 1600 colonnes de type bigint consommera 12800 octets et ne pourra pas tenir dans le bloc. Les champs typés text, varchar et char de longueur variable peuvent avoir leurs valeurs stockées à l'extérieur dans une table TOAST lorsque cette valeur est suffisament importante pour que cela se produise. Un pointeur de 18 octets doit rester à l'intérieur de la ligne dans la table. Pour des longueurs moins importantes de champs à longueur variable, un champ entête de 4-octets ou 1-octet est utilisé et la valeur est stockée à l'intérieur de la ligne.

Les colonnes qui ont été supprimées de la table participent aussi à la limite maximum de colonnes. De plus, bien que les valeurs des colonnes supprimées pour les nouvelles lignes créées soient marquées en interne comme null, ainsi que dans le champ de bits des valeurs null de la ligne, ce champ consomme de l'espace.