Saltar al contenido

¿Hay un límite para el tamaño de una base de datos SQLite?

Hola, encontramos la respuesta a tu interrogante, continúa leyendo y la hallarás aquí.

Solución:

Esto es bastante fácil de deducir de la página de límites de implementación:

Un archivo de base de datos SQLite está organizado como páginas. El tamaño de cada página es una potencia de 2 entre 512 y SQLITE_MAX_PAGE_SIZE. El valor predeterminado para SQLITE_MAX_PAGE_SIZE es 32768.

El parámetro SQLITE_MAX_PAGE_COUNT, que normalmente se establece en 1073741823, es el número máximo de páginas permitidas en un solo archivo de base de datos. Un intento de insertar nuevos datos que harían que el archivo de la base de datos creciera más que esto devolverá SQLITE_FULL.

Entonces tenemos 32768 * 1073741823, que es 35,184,372,056,064 (35 billones bytes)!

Puedes modificar SQLITE_MAX_PAGE_COUNT o SQLITE_MAX_PAGE_SIZE en la fuente, pero esto, por supuesto, requerirá una compilación personalizada de SQLite para su aplicación. Hasta donde yo sé, no hay forma de establecer un límite programáticamente que no sea en el momento de la compilación (pero me encantaría que me demuestren lo contrario).

Tiene nuevos límites, ahora el límite de tamaño de la base de datos es de 128 TB:

Cada base de datos consta de una o más “páginas”. Dentro de una sola base de datos, cada página tiene el mismo tamaño, pero diferentes bases de datos pueden tener tamaños de página que son potencias de dos entre 512 y 65536, inclusive. El tamaño máximo de un archivo de base de datos es de 2147483646 páginas. Con un tamaño de página máximo de 65536 bytes, esto se traduce en un tamaño máximo de base de datos de aproximadamente 1,4e+14 bytes (140 terabytes o 128 tebibytes o 140 000 gigabytes o 128 000 gibibytes).

Este límite superior en particular no se ha probado ya que los desarrolladores no tienen acceso a hardware capaz de alcanzar este límite. Sin embargo, las pruebas verifican que SQLite se comporta de manera correcta y sensata cuando una base de datos alcanza el tamaño máximo de archivo del sistema de archivos subyacente (que suele ser mucho menor que el tamaño máximo teórico de la base de datos) y cuando una base de datos no puede crecer debido al agotamiento del espacio en disco.

Aunque esta es una vieja pregunta, permítanme compartir mis hallazgos con las personas que llegan a esta pregunta.

Aunque la documentación de Sqlite establece que el tamaño máximo del archivo de la base de datos es de ~140 terabytes, su sistema operativo impone sus propias restricciones sobre el tamaño máximo de archivo para cualquier tipo de archivo.

Por ejemplo, si está utilizando disco FAT32 en Windows, el tamaño de archivo máximo que podía alcanzar para el archivo sqLite db era 2GB. (Según el sitio de Microsoft, el límite en el sistema FAT 32 es 4 GB pero aún así mi tamaño de sqlite db estaba restringido a 2 GB). Mientras estaba en Linux, pude alcanzar los 3 GB (donde me detuve. Podría haber alcanzado más tamaño)

NOTA: Había escrito un pequeño programa java que comenzará a llenar sqlite db desde 0 filas y continuará llenándose hasta que se dé el comando de detención.

Te invitamos a añadir valor a nuestra información contribuyendo tu veteranía en las explicaciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *