ΠΠ·Π΄Π°Π½ΠΈΠ΅ΡΠΎ Π½Π° SQLite 3.40, Π»Π΅ΠΊΠ° Π‘Π£ΠΠ, ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½Π° ΠΊΠ°ΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Ρ Π΄ΠΎΠ±Π°Π²ΠΊΠΈ, Π±Π΅ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π°. ΠΠΎΠ΄ΡΡ Π½Π° SQLite ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° Π² ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, Ρ.Π΅. ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±Π΅Π· ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΈ Π±Π΅Π·ΠΏΠ»Π°ΡΠ½ΠΎ Π·Π° Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ ΡΠ΅Π»ΠΈ. Π€ΠΈΠ½Π°Π½ΡΠΎΠ²Π°ΡΠ° ΠΏΠΎΠ΄ΠΊΡΠ΅ΠΏΠ° Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° SQLite ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΎΡ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ ΡΡΠ·Π΄Π°Π΄Π΅Π½ ΠΊΠΎΠ½ΡΠΎΡΡΠΈΡΠΌ, ΠΊΠΎΠΉΡΠΎ Π²ΠΊΠ»ΡΡΠ²Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΊΠ°ΡΠΎ Adobe, Oracle, Mozilla, Bentley ΠΈ Bloomberg.
ΠΡΠ½ΠΎΠ²Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ:
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π΅ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π½Π° ΡΡΠ½ΠΊΡΠΈΡ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π° SQLite Π² ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π΅Π½ ΠΊΠΎΠ΄ Π½Π° WebAssembly, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π² ΡΠ΅Π± Π±ΡΠ°ΡΠ·ΡΡ ΠΈ Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΠΎΡ JavaScript ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ° ΡΠ΅Π± ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ, ΠΎΠ±Π΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ Π΄Π°Π½Π½ΠΈ Π² ΡΡΠΈΠ»Π° Π½Π° sql.js ΠΈΠ»ΠΈ Node.js, ΠΎΠ±Π²ΠΈΠ²ΠΊΠ° ΠΎΠΊΠΎΠ»ΠΎ Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ C API ΠΈ API, Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Web Worker, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ, ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Π² ΠΎΡΠ΄Π΅Π»Π½ΠΈ Π½ΠΈΡΠΊΠΈ. ΠΠ°Π½Π½ΠΈΡΠ΅, ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½ΠΈ ΠΎΡ ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° Π²ΡΠ² WASM Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° SQLite, ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ ΠΎΡ ΡΡΡΠ°Π½Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ OPFS (Origin-Private FileSystem) ΠΈΠ»ΠΈ 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. ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π·Π° ΠΏΡΠ°Π²ΠΈΠ»Π΅Π½ ΡΠ΅Π΄ Π½Π° ΡΠ΅Π΄ΠΎΠ²Π΅ΡΠ΅ Π·Π° ΡΠ°Π±Π»ΠΈΡΠΈ Ρ ΡΠ»Π°Π³ "WITHOUT ROWID".
- ΠΠ·ΡΠ°Π·ΡΡ "VACUUM INTO" Π²Π·Π΅ΠΌΠ° ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π½Π° "PRAGMA synchronous".
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΎΠΏΡΠΈΡ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ SQLITE_MAX_ALLOCATION_SIZE, ΠΊΠΎΡΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° Π±Π»ΠΎΠΊΠΎΠ²Π΅ΡΠ΅ ΠΏΡΠΈ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ.
- ΠΠ³ΡΠ°Π΄Π΅Π½ΠΈΡΡ Π°Π»Π³ΠΎΡΠΈΡΡΠΌ Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠ΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΠΈ ΡΠΈΡΠ»Π° Π½Π° SQLite Π΅ ΠΌΠΈΠ³ΡΠΈΡΠ°Π» ΠΎΡ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΠΎΡΠΎΡΠ΅Π½ ΡΠΈΡΡΡ RC4 ΠΊΡΠΌ Chacha20.
- Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΎ Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΈ Ρ Π΅Π΄Π½ΠΈ ΠΈ ΡΡΡΠΈ ΠΈΠΌΠ΅Π½Π° Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡ Π΅ΠΌΠΈ Π·Π° Π΄Π°Π½Π½ΠΈ.
- ΠΠ°ΠΏΡΠ°Π²Π΅Π½ΠΈ ΡΠ° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°, ΠΊΠΎΠΈΡΠΎ Π½Π°ΠΌΠ°Π»ΡΠ²Π°Ρ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° Ρ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ 1% ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠΈΠΏΠΈΡΠ½Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
