ИзданиС на SQLite 3.40

ОбјавСно Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° SQLite 3.40, лСсСн DBMS Π΄ΠΈΠ·Π°Ρ˜Π½ΠΈΡ€Π°Π½ ΠΊΠ°ΠΊΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° со ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΠΊ. SQLite ΠΊΠΎΠ΄ΠΎΡ‚ сС дистрибуира ΠΊΠ°ΠΊΠΎ јавСн Π΄ΠΎΠΌΠ΅Π½, Ρ‚.Π΅. ΠΌΠΎΠΆΠ΅ Π΄Π° сС користи Π±Π΅Π· ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ° ΠΈ бСсплатно Π·Π° која Π±ΠΈΠ»ΠΎ Π½Π°ΠΌΠ΅Π½Π°. Ѐинансиската ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π½Π° SQLite Π΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄Π΅Π½Π° ΠΎΠ΄ ΡΠΏΠ΅Ρ†ΠΈΡ˜Π°Π»Π½ΠΎ создадСн ΠΊΠΎΠ½Π·ΠΎΡ€Ρ†ΠΈΡƒΠΌ, кој Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΊΠ°ΠΊΠΎ Adobe, Oracle, Mozilla, Bentley ΠΈ Bloomberg.

Π“Π»Π°Π²Π½ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ:

  • Π˜ΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½Π° Π΅ СкспСримСнтална карактСристика Π·Π° ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π°ΡšΠ΅ Π½Π° SQLite Π²ΠΎ срСдСн ΠΊΠΎΠ΄ WebAssembly, способСн Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π²ΠΎ Π²Π΅Π±-прСлистувач ΠΈ ΠΏΠΎΠ³ΠΎΠ΄Π΅Π½ Π·Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°ΡšΠ΅ Ρ€Π°Π±ΠΎΡ‚Π° со Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΎΠ΄ Π²Π΅Π±-Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π²ΠΎ JavaScript. На Π²Π΅Π±-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ ΠΈΠΌ Π΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄Π΅Π½ ΠΎΠ±Ρ˜Π΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜Ρ Π½Π° високо Π½ΠΈΠ²ΠΎ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° со ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Π²ΠΎ стилот Π½Π° sql.js ΠΈΠ»ΠΈ Node.js, Π²Ρ€Π·ΡƒΠ²Π°ΡšΠ΅ ΠΏΡ€Π΅ΠΊΡƒ C API Π½Π° ниско Π½ΠΈΠ²ΠΎ ΠΈ API Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΡ‚ Web Worker, ΡˆΡ‚ΠΎ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΄Π° ΠΊΡ€Π΅ΠΈΡ€Π°Ρ‚Π΅ асинхрони Ρ€Π°ΠΊΡƒΠ²Π°Ρ‡ΠΈ ΠΊΠΎΠΈ сС ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°Π°Ρ‚ Π²ΠΎ посСбни нишки. ΠŸΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ ΡˆΡ‚ΠΎ Π²Π΅Π±-Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈΡ‚Π΅ Π³ΠΈ складираат Π²ΠΎ Π²Π΅Ρ€Π·ΠΈΡ˜Π°Ρ‚Π° WASM Π½Π° SQLite ΠΌΠΎΠΆΠ΅ Π΄Π° сС складираат Π½Π° страната Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΡ‚ со помош Π½Π° OPFS (Origin-Private File System) ΠΈΠ»ΠΈ Π½Π° window.localStorage API.
  • Π”ΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ Π΅ΠΊΡΡ‚Π΅Π½Π·ΠΈΡ˜Π° Π·Π° ΠΎΠ±Π½ΠΎΠ²ΡƒΠ²Π°ΡšΠ΅, Π΄ΠΈΠ·Π°Ρ˜Π½ΠΈΡ€Π°Π½Π° Π΄Π° Π³ΠΈ Π²Ρ€Π°ΡœΠ° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ ΠΎΠ΄ ΠΎΡˆΡ‚Π΅Ρ‚Π΅Π½ΠΈΡ‚Π΅ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ ΠΎΠ΄ Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ. Π’ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜ΡΠΎΡ‚ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°Ρ‚Π° линија, ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° β€ž.recoverβ€œ сС користи Π·Π° ΠΎΠ±Π½ΠΎΠ²ΡƒΠ²Π°ΡšΠ΅.
  • ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈ пСрформанси Π½Π° ΠΏΠ»Π°Π½Π΅Ρ€ΠΎΡ‚ Π·Π° ΠΏΡ€Π°ΡˆΠ°ΡšΠ°. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ°Ρ‚Π° сС отстранСти ΠΏΡ€ΠΈ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° индСкси со Ρ‚Π°Π±Π΅Π»ΠΈ со повСќС ΠΎΠ΄ 63 ΠΊΠΎΠ»ΠΎΠ½ΠΈ (ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎ, ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€Π°ΡšΠ΅Ρ‚ΠΎ Π½Π΅ сС ΠΏΡ€ΠΈΠΌΠ΅Π½ΡƒΠ²Π°ΡˆΠ΅ ΠΊΠΎΠ³Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ со ΠΊΠΎΠ»ΠΎΠ½ΠΈ Ρ‡ΠΈΡ˜ Ρ€Π΅Π΄Π΅Π½ Π±Ρ€ΠΎΡ˜ Π½Π°Π΄ΠΌΠΈΠ½ΡƒΠ²Π° 63). ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€Π°ΡšΠ΅ Π½Π° врСдноститС ΡˆΡ‚ΠΎ сС користат Π²ΠΎ ΠΈΠ·Ρ€Π°Π·ΠΈΡ‚Π΅. ΠŸΡ€Π΅ΡΡ‚Π°Π½Π° Π΄Π° сС Π²Ρ‡ΠΈΡ‚ΡƒΠ²Π°Π°Ρ‚ Π³ΠΎΠ»Π΅ΠΌΠΈ Π½ΠΈΠ·ΠΈ ΠΈ Π΄Π°ΠΌΠΊΠΈ ΠΎΠ΄ дискот ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ NOT NULL ΠΈ IS NULL. Π˜ΡΠΊΠ»ΡƒΡ‡Π΅Π½Π° Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ³Π»Π΅Π΄ΠΈΡ‚Π΅ Π·Π° ΠΊΠΎΠΈ сС Π²Ρ€ΡˆΠΈ цСлосно ΡΠΊΠ΅Π½ΠΈΡ€Π°ΡšΠ΅ само Сднаш.
  • Π’ΠΎ Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΊΠΎΠ΄ΠΎΠ²ΠΈ, намСсто Ρ‚ΠΈΠΏΠΎΡ‚ β€žchar *β€œ, сС користи посСбСн Ρ‚ΠΈΠΏ sqlite3_filename Π·Π° ΠΏΡ€Π΅Ρ‚ΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΈΠΌΠΈΡšΠ°Ρ‚Π° Π½Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅.
  • Π”ΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ Π²Π½Π°Ρ‚Ρ€Π΅ΡˆΠ½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π° sqlite3_value_encoding().
  • Π”ΠΎΠ΄Π°Π΄Π΅Π½ Π΅ Ρ€Π΅ΠΆΠΈΠΌ SQLITE_DBCONFIG_DEFENSIVE, кој Π·Π°Π±Ρ€Π°Π½ΡƒΠ²Π° ΠΌΠ΅Π½ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π²Π΅Ρ€Π·ΠΈΡ˜Π°Ρ‚Π° Π½Π° ΡˆΠ΅ΠΌΠ°Ρ‚Π° Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ.
  • Π”ΠΎΠ΄Π°Π΄Π΅Π½ΠΈ сС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ΠΎΡ‚ β€žPRAGMA integrity_checkβ€œ. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°Π±Π΅Π»ΠΈΡ‚Π΅ Π±Π΅Π· Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΡ‚ STRICT Π½Π΅ смСат Π΄Π° содрТат Π½ΡƒΠΌΠ΅Ρ€ΠΈΡ‡ΠΊΠΈ врСдности Π²ΠΎ ΠΊΠΎΠ»ΠΎΠ½ΠΈ ΠΎΠ΄ Ρ‚ΠΈΠΏΠΎΡ‚ TEXT ΠΈ врСдности Π½Π° Π½ΠΈΠ·Π° со Π±Ρ€ΠΎΠ΅Π²ΠΈ Π²ΠΎ ΠΊΠΎΠ»ΠΎΠ½ΠΈ ΠΎΠ΄ Ρ‚ΠΈΠΏΠΎΡ‚ NUMERIC. Π”ΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π·Π° ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΈΠΎΡ‚ рСдослСд Π½Π° Ρ€Π΅Π΄ΠΎΠ²ΠΈ Π²ΠΎ Ρ‚Π°Π±Π΅Π»ΠΈΡ‚Π΅ со Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΡ‚ β€žΠ‘Π•Π— ROWIDβ€œ.
  • Π˜Π·Ρ€Π°Π·ΠΎΡ‚ β€žVACUUM INTOβ€œ Π³ΠΈ Π·Π΅ΠΌΠ° ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ поставкитС β€žPRAGMA synchronousβ€œ.
  • Π”ΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΎΠΏΡ†ΠΈΡ˜Π° Π·Π° ΡΠΊΠ»ΠΎΠΏΡƒΠ²Π°ΡšΠ΅ SQLITE_MAX_ALLOCATION_SIZE, која Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΄Π° ја ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅ Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°Ρ‚Π° Π½Π° Π±Π»ΠΎΠΊΠΎΠ²ΠΈΡ‚Π΅ ΠΏΡ€ΠΈ Π΄ΠΎΠ΄Π΅Π»ΡƒΠ²Π°ΡšΠ΅ ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°.
  • Π’Π³Ρ€Π°Π΄Π΅Π½ΠΈΠΎΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚Π°ΠΌ Π·Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°ΡšΠ΅ псСвдо-ΡΠ»ΡƒΡ‡Π°Ρ˜Π½ΠΈ Π±Ρ€ΠΎΠ΅Π²ΠΈ Π½Π° SQLite Π΅ прСмСстСн ΠΎΠ΄ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° ΡˆΠΈΡ„Ρ€Π°Ρ‚Π° Π·Π° ΠΏΠΎΡ‚ΠΎΠΊ RC4 Π²ΠΎ Chacha20.
  • Π”ΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΎ Π΅ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° индСкси со исти имиња Π²ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ шСми Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ.
  • НаправСни сС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° пСрформанситС Π·Π° Π΄Π° сС Π½Π°ΠΌΠ°Π»ΠΈ ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° процСсорот Π·Π° ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ½ΠΎ 1% ΠΏΡ€ΠΈ Ρ‚ΠΈΠΏΠΈΡ‡Π½Π° активност.

Π˜Π·Π²ΠΎΡ€: opennet.ru

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€