Π Π΅Π»ΠΈΠ· Π‘Π£Π‘Π” SQLite 3.32. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ DuckDB Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅Ρ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ SQLite для аналитичСских запросов

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Ρ€Π΅Π»ΠΈΠ· SQLite 3.32.0, лСгковСсной Π‘Π£Π‘Π”, ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½ΠΎΠΉ Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Код SQLite распространяСтся ΠΊΠ°ΠΊ общСствСнноС достояниС (public domain), Ρ‚.Π΅. ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π±Π΅Π· ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ΠΈ Π±Π΅Π·Π²ΠΎΠ·ΠΌΠ΅Π·Π΄Π½ΠΎ Π² Π»ΡŽΠ±Ρ‹Ρ… цСлях. Π€ΠΈΠ½Π°Π½ΡΠΎΠ²ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² SQLite осущСствляСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ созданный консорциум, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ входят Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΊΠ°ΠΊ Adobe, Oracle, Mozilla, Bentley ΠΈ Bloomberg.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ измСнСния:

  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ аппроксимированный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ANALYZE, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π² ΠΎΡ‡Π΅Π½ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π‘Π” ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ частичным сбором статистики, Π±Π΅Π· ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ сканирования индСксов. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° число записСй ΠΏΡ€ΠΈ сканировании ΠΎΠ΄Π½ΠΎΠ³ΠΎ индСкса задаётся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π½ΠΎΠ²ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ «PRAGMA analysis_limit«.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° новая Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π° «bytecode«, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° информация ΠΎ Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄Π΅ Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Ρ… Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ (prepared statement).
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° VFS-прослойка checksum, Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‰Π°Ρ 8-Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ суммы Π² ΠΊΠΎΠ½Π΅Ρ† ΠΊΠ°ΠΆΠ΄ΠΎΠΉ страницы Π΄Π°Π½Π½Ρ‹Ρ… Π² Π‘Π” ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰Π°Ρ ΠΈΡ… ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ ΠΈΠ· Π‘Π”. ΠŸΡ€ΠΎΡΠ»ΠΎΠΉΠΊΠ° позволяСт Π²Ρ‹ΡΠ²Π»ΡΡ‚ΡŒ поврСТдСния Π‘Π” Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ случайного искаТСния Π±ΠΈΡ‚ΠΎΠ² Π² устройствах хранСния.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° новая SQL-функция iif(X,Y,Z), Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π°Ρ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Y, Ссли Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ X являСтся истинным, ΠΈΠ»ΠΈ Z, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС.
  • Π’ выраТСниях INSERT ΠΈ UPDATE Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ всСгда примСняСтся Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² столбцов (column affinity) ΠΏΠ΅Ρ€Π΅Π΄ вычислСниСм условий Π² Π±Π»ΠΎΠΊΠ΅ CHECK.
  • Π›ΠΈΠΌΠΈΡ‚ Π½Π° число ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ с 999 Π΄ΠΎ 32766.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ UINT collating sequence с Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ сортировки ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ, ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ†Π΅Π»Ρ‹Π΅ числа Π² тСкстС для сортировки этого тСкста Π² числовом порядкС.
  • Π’ интСрфСйсС ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ «.import» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΎΠΏΡ†ΠΈΠΈ «—csv», «—ascii» ΠΈ «—skip». Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ «.dump» Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ использованиС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… LIKE-шаблонов с слияниСм Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ всСх Ρ‚Π°Π±Π»ΠΈΡ†, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ маскам. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° «.oom» для ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Ρ… сборок. Π’ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ «.excel», «.output» ΠΈ «.once» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция «—bom». Π’ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ «.filectrl» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция «—schema».
  • Π£ΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ LIKE Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ESCAPE Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ пСрСопрСдСляСт символы подстановки, Ρ‡Ρ‚ΠΎ соотвСтствуСт повСдСнию PostgreSQL .

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π‘Π£Π‘Π” DuckDB, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ разрабатываСтся Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ SQLite, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ для выполнСния аналитичСских запросов.
Помимо ΠΊΠΎΠ΄Π° ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ ΠΈΠ· SQLite ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ вынСсСнный Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ парсСр ΠΈΠ· PostgreSQL, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Date Math ΠΈΠ· MonetDB, своя рСализация ΠΎΠΊΠΎΠ½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (Π½Π° Π±Π°Π·Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Segment Tree Aggregation), Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ выполнСния запросов (Π½Π° Π±Π°Π·Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Hyper-Pipelining Query Execution), ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π° основС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ RE2, собствСнныС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ запросов ΠΈ MVCC-ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ управлСния ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π·Π°Π΄Π°Π½ΠΈΠΉ (Multi-Version Concurrency Control).
Код ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ MIT. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΠΎΠΊΠ° находится Π½Π° стадии формирования ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… выпусков.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru