Lanzamiento de la base de datos SQLite 3.45

Se ha publicado el lanzamiento de SQLite 3.45, una base de datos ligera presentada como una biblioteca de enlace. El código de SQLite se distribuye como dominio público, es decir, se puede utilizar sin restricciones y de forma gratuita para cualquier finalidad. El apoyo financiero a los desarrolladores de SQLite es proporcionado por un consorcio creado específicamente, que incluye empresas como Bentley, Bloomberg, Expensify y Navigation Data Standard.

Principales cambios:

  • Todas las funciones SQL para trabajar con el formato JSON han sido reescritas y convertidas a un nuevo formato interno de árbol de análisis JSONB, que se serializa y puede almacenarse en la base de datos para evitar el análisis repetido al usar valores JSON. Las nuevas versiones de las funciones que generan JSON ahora generan el formato binario JSONB en lugar del texto. A la función json_valid() se le ha añadido un segundo argumento opcional que permite especificar una máscara de bits que define las características de un JSON válido (por ejemplo, al especificar 0x04 se considerará válido un blob JSONB, al especificar 0x01, un JSON de texto en el formato RFC-8259, y al especificar 0x05, ambas variantes).
  • Se ha añadido la opción tokendata a la tabla virtual FTS5, utilizada para la búsqueda de texto completo, lo que permite el uso de tokenizadores personalizados.
  • Por defecto, se ha activado la optimización SQLITE_DIRECT_OVERFLOW_READ, en la que las páginas de desbordamiento, cuyo tamaño es mayor que el tamaño estándar de las páginas b-tree, se leen directamente desde el archivo, omitiendo la caché. Para desactivarla durante la compilación, se puede usar la opción «-DSQLITE_DIRECT_OVERFLOW_READ=0».
  • En el planificador de consultas, se ha mejorado la eficiencia de la optimización de restricciones transitivas (transitive constraint) y se ha mejorado la ignorancia de índices considerados de baja calidad durante la operación ANALYZE.
  • En la interfaz de línea de comandos, se ha mejorado la visualización del contenido en codificación UTF-8 en la plataforma Windows. Se ha garantizado la detección automática del uso de la interfaz CLI al reproducir scripts «.dump» e implementar cambios correspondientes en configuraciones como «.dbconfig defensive off» y «.dbconfig dqs_dll on».
  • Se ha añadido la propiedad SQLITE_RESULT_SUBTYPE a las funciones SQL definidas del lado de la aplicación, lo que permite llamar a sqlite3_result_subtype() para inspeccionar los subtipos de los argumentos.

También se puede mencionar el desarrollo en las versiones experimentales de SQLite de un nuevo modo de registro de transacciones: WAL2 ("PRAGMA journal_mode = wal2"), en el cual se utilizan dos archivos WAL ("database-wal" y "database-wal2") en lugar de uno. Al registrar datos en la base de datos, se añaden nuevos datos al primer archivo WAL. Si el primer archivo WAL alcanza un tamaño suficientemente grande, se cambia a la escritura en el segundo archivo. Tras el cambio al segundo archivo WAL, el primero queda disponible para la confirmación de cambios (checkpoint) y reescritura. Por lo tanto, cuando el segundo archivo WAL alcanza un tamaño considerable, se cambia de regreso al primero, y así sucesivamente, lo que resuelve el problema del crecimiento incontrolado del archivo WAL en situaciones donde la transacción no se confirma durante mucho tiempo o se realizan procesos de lectura prolongados.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster