
SQLite és un motor de base de dades lleugeres
Fa pocs dies es va donar a conèixer el llançament de la nova versió de SQLite 3.46, la qual arriba amb una sèrie de millores significatives que milloren la funcionalitat d'aquesta popular base de dades i entre els canvis més notables es destaca les millores a PRAGMA optimize, l'addició de la funció SQL json_pretty(), la inclusió de caràcters de control ASCII, entre altres coses més.
Per als que desconeixen de SQLite, han de saber que aquest és un motor de base de dades relacional lleuger accessible a través del llenguatge SQL. A diferència dels servidors de bases de dades tradicionals, com MySQL o PostgreSQL, la seva particularitat és no reproduir l'esquema client-servidor habitual, sinó integrar-se directament als programes.
Gràcies a la seva extrema lleugeresa, SQLite és un dels motors de bases de dades més utilitzats al món. S'utilitza en molts programes de consum i també és molt popular en els sistemes integrats, inclosos els telèfons intel·ligents més moderns.
Principals novetats de SQLite 3.46
Aquesta nova versió que es presenta de SQLite 3.46 s'han millorat les capacitats de l'operació PRAGMA optimize, de múltiples maneres per fer-ho més senzill dutilitzar, optimitzant la base de dades i tots els esquemes de dades per a un millor rendiment de les consultes. Ara, PRAGMA optimize implementa automàticament un límit d'anàlisi temporal per evitar execucions excessives en bases de dades grans. S'ha afegit una nova opció de màscara de bits PRAGMA optimize (0x10000) per comprovar actualitzacions a totes les taules, i es realitza automàticament una reanàlisi de les taules que no tenen entrades sqlite_stat1.
Una altra de les novetats que presenta SQLite 3.46, són les millores en funcions, ja que s'ha ampliat el suport de la funció SQL strftime() per incloure %G, %g, %U i %V, a més s'han introduït els modificadors 'ceiling' i 'floor' a les funcions SQL per controlar l'algorisme utilitzat en la resolució de dates ambigües en desplaçar una data per un nombre enter de mesos i/o anys. A més, els modificadors 'utc' i 'localtime' ara són no operatius si SQLite sap que l'hora ja és a UTC oa l'hora local, respectivament.
A més d'això, s'ha implementat l'optimització «VALUES-as-coroutine» per permetre que les declaracions INSERT amb milers de files a VALUES s'analitzin i executin en aproximadament la meitat del temps i utilitzin aproximadament la meitat de la memòria.
D'altra banda, es permet l'ús d'un índex per a consultes com SELECT count(DISTINCT col) FROM …» fins i tot si els registres díndex no són més petits que els registres de la taula. S'ha millorat el reconeixement dels casos en què el valor d'una funció SQL és constant perquè tots els seus arguments són constants. També s'ha millorat l'optimització d'empenta de clàusules WHERE perquè pugueu empènyer clàusules WHERE que contenen subconsultes no correlacionades.
Dels altres canvis que es destaquen:
- Addició de suport per a caràcters de subratllat («_») entre dígits en literals numèrics.
- Incorporació de la funció SQL json_pretty() per generar una sortida JSON més llegible i formatada amb sagnia de bloc.
- Assignació de memòria addicional des del munt per a la pila de l'analitzador SQL si aquesta es desborda, en lloc de reportar un error parser stack overflow.
- Es permet la inclusió de caràcters de control ASCII a literals de cadena JSON5.
- S'han corregit els operadors -> i ->> perquè quan l'operand del costat dret sigui una cadena que sembli un sencer, encara es tracti com una cadena, tal com ho fa PostgreSQL.
- Permetre lús de literals hexadecimals llargs com a valor per defecte per a una columna de taula.
- S'ha introduït l'ús del separador _ en números per a una representació visual més clara de literals numèrics (per exemple, 1_234_567).
- S'ha millorat la gestió de desbordament de la pila de l'analitzador per assignar memòria addicional del munt en cas de memòria insuficient a la pila.
- Ara, el valor DEFAULT permet especificar literals hexadecimals grans a les columnes de la taula.
Finalment si estàs interessat a poder conèixer més sobre això, Pots consultar els detalls en el següent enllaç.