Después de consultar especialistas en este tema, programadores de deferentes ramas y maestros dimos con la respuesta a la pregunta y la plasmamos en este post.
La Tabla K.1 describe varios límites estrictos de PostgreSQL. Sin embargo, pueden aplicarse límites prácticos, como las limitaciones de rendimiento o el espacio disponible en el disco, antes de que se alcancen los límites estrictos absolutos.
Tabla K.1. Limitaciones de PostgreSQL
Articulo | Limite superior | Comentario |
---|---|---|
tamaño de la base de datos | ilimitado | |
número de bases de datos | 4,294,950,911 | |
relaciones por base de datos | 1.431.650.303 | |
tamaño de la relación | 32TB | con el valor predeterminado BLCKSZ de 8192 bytes |
filas por tabla | limitado por el número de tuplas que caben en 4.294.967.295 páginas | |
columnas por tabla | 1600 | limitado aún más por el ajuste del tamaño de tupla en una sola página; vea la nota abajo |
tamaño del campo | 1 GB | |
longitud del identificador | 63 bytes | se puede aumentar recompilando PostgreSQL |
índices por tabla | ilimitado | restringido por relaciones máximas por base de datos |
columnas por índice | 32 | se puede aumentar recompilando PostgreSQL |
dividir keys | 32 | se puede aumentar recompilando PostgreSQL |
El número máximo de columnas de una tabla se reduce aún más, ya que la tupla que se almacena debe caber en una sola página de almacenamiento dinámico de 8192 bytes. Por ejemplo, excluyendo el encabezado de la tupla, una tupla compuesta por 1600 int
las columnas consumirían 6400 bytes y podrían almacenarse en una página de almacenamiento dinámico, pero una tupla de 1600 bigint
las columnas consumirían 12800 bytes y, por lo tanto, no cabrían dentro de una página de almacenamiento dinámico. Campos de longitud variable de tipos como text
, varchar
y char
pueden tener sus valores almacenados fuera de línea en la tabla TOAST de la tabla cuando los valores son lo suficientemente grandes como para requerirlo. Solo un puntero de 18 bytes debe permanecer dentro de la tupla en el montón de la tabla. Para campos de longitud variable de longitud más corta, se utiliza un encabezado de campo de 4 bytes o de 1 byte y el valor se almacena dentro de la tupla de almacenamiento dinámico.
Las columnas que se han eliminado de la tabla también contribuyen al límite máximo de columnas. Además, aunque los valores de las columnas eliminadas para las tuplas recién creadas están marcados internamente como null en la tupla null mapa de bits, el null mapa de bits también ocupa espacio.
Anterior | Arriba | próximo |
J.5. Guía de estilo | Casa | Apéndice L. Acrónimos |
Comentarios y puntuaciones
Tienes la opción de añadir valor a nuestro contenido informacional contribuyendo tu veteranía en las aclaraciones.