Paglabas ng DBMS SQLite 3.40

Ang paglabas ng SQLite 3.40, isang magaan na DBMS na idinisenyo bilang isang plug-in na library, ay nai-publish. Ang SQLite code ay ipinamahagi bilang isang pampublikong domain, ibig sabihin. maaaring gamitin nang walang mga paghihigpit at walang bayad para sa anumang layunin. Ang suportang pinansyal para sa mga developer ng SQLite ay ibinibigay ng isang espesyal na nilikhang consortium, na kinabibilangan ng mga kumpanya tulad ng Adobe, Oracle, Mozilla, Bentley at Bloomberg.

Pangunahing pagbabago:

  • Ang isang pang-eksperimentong tampok ay ipinatupad upang i-compile ang SQLite sa WebAssembly intermediate code, na may kakayahang tumakbo sa isang web browser at angkop para sa pag-aayos ng trabaho kasama ang database mula sa mga web application sa JavaScript. Ang mga web developer ay binibigyan ng mataas na antas na object-oriented na interface para sa pagtatrabaho sa data sa istilo ng sql.js o Node.js, isang pagbubuklod sa mababang antas ng C API at isang API batay sa mekanismo ng Web Worker, na nagbibigay-daan gumawa ka ng mga asynchronous na tagapangasiwa na isinagawa sa magkahiwalay na mga thread. Ang data na iniimbak ng mga web application sa WASM na bersyon ng SQLite ay maaaring maimbak sa panig ng kliyente gamit ang OPFS (Origin-Private FileSystem) o ang window.localStorage API.
  • Nagdagdag ng extension sa pagbawi, na idinisenyo upang mabawi ang data mula sa mga nasirang file mula sa database. Sa interface ng command line, ang command na ".recover" ay ginagamit para sa pagbawi.
  • Pinahusay na pagganap ng query planner. Inalis ang mga paghihigpit kapag gumagamit ng mga index na may mga talahanayan na may higit sa 63 column (dati, hindi inilapat ang pag-index kapag ang mga operasyon na may mga column na ang ordinal na numero ay lumampas sa 63). Pinahusay na pag-index ng mga halaga na ginagamit sa mga expression. Huminto sa paglo-load ng malalaking string at blobs mula sa disk kapag pinoproseso ang NOT NULL at IS NULL operator. Ang materyalisasyon ng mga view kung saan ang isang buong pag-scan ay isinasagawa nang isang beses lamang ay hindi kasama.
  • Sa codebase, sa halip na "char *" na uri, isang hiwalay na uri na sqlite3_filename ang ginagamit upang kumatawan sa mga pangalan ng file.
  • Nagdagdag ng panloob na function na sqlite3_value_encoding().
  • Nagdagdag ng SQLITE_DBCONFIG_DEFENSIVE mode, na nagbabawal sa pagbabago ng bersyon ng schema ng storage ng data.
  • Ang mga karagdagang pagsusuri ay idinagdag sa pagpapatupad ng parameter na "PRAGMA integrity_check". Halimbawa, ang mga talahanayan na walang STRICT attribute ay hindi dapat maglaman ng mga numeric na halaga sa mga column na may uri ng TEXT at string value na may mga numero sa mga column na may uri na NUMERIC. Idinagdag din ang isang tseke para sa tamang pagkakasunud-sunod ng mga hilera sa mga talahanayan na may katangiang "WALANG ROWID".
  • Isinasaalang-alang ng expression na "VACUUM INTO" ang mga setting ng "PRAGMA synchronous".
  • Nagdagdag ng opsyon sa pagpupulong SQLITE_MAX_ALLOCATION_SIZE, na nagbibigay-daan sa iyong limitahan ang laki ng mga bloke kapag naglalaan ng memorya.
  • Ang built-in na pseudo-random number generation algorithm ng SQLite ay inilipat mula sa paggamit ng RC4 stream cipher sa Chacha20.
  • Pinapayagan na gumamit ng mga index na may parehong mga pangalan sa iba't ibang mga scheme ng data.
  • Ang mga pag-optimize ng pagganap ay ginawa upang bawasan ang pag-load ng CPU ng humigit-kumulang 1% sa panahon ng karaniwang aktibidad.

Pinagmulan: opennet.ru

Magdagdag ng komento