ΠΠ±ΡΠ°Π²Π΅Π½ΠΎ Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ΡΠΎ Π½Π° 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