ВСрсия Π½Π° SQLite 3.35

Π˜Π·Π΄Π°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° SQLite 3.35, Π»Π΅ΠΊΠ° Π‘Π£Π‘Π”, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½Π° ΠΊΠ°Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° с Π΄ΠΎΠ±Π°Π²ΠΊΠΈ, бСшС ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π°. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° SQLite сС разпространява Π² ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΡ‚ΠΎ пространство, Ρ‚.Π΅. ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±Π΅Π· ограничСния ΠΈ Π±Π΅Π·ΠΏΠ»Π°Ρ‚Π½ΠΎ Π·Π° всякакви Ρ†Π΅Π»ΠΈ. Ѐинансовата ΠΏΠΎΠ΄ΠΊΡ€Π΅ΠΏΠ° Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° SQLite сС осигурява ΠΎΡ‚ спСциално създадСн консорциум, ΠΊΠΎΠΉΡ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΊΠ°Ρ‚ΠΎ Adobe, Oracle, Mozilla, Bentley ΠΈ Bloomberg.

Основни ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ:

  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ са Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ матСматичСски Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (log2(), cos(), tg(), exp(), ln(), pow() ΠΈ Π΄Ρ€.), ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π² SQL. АктивиранСто Π½Π° Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ изисква ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ с опцията "-DSQLITE_ENABLE_MATH_FUNCTIONS".
  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΈΠ·Ρ€Π°Π·Π° β€žALTER TABLE DROP COLUMNβ€œ Π·Π° ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΈ ΠΎΡ‚ Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΈ изчистванС Π½Π° Π΄Π°Π½Π½ΠΈ, ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈ ΠΏΡ€Π΅Π΄ΠΈ Ρ‚ΠΎΠ²Π° Π² Π΄Π°Π΄Π΅Π½Π° ΠΊΠΎΠ»ΠΎΠ½Π°.
  • Π˜Π·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° опСрацията UPSERT (добавянС ΠΈΠ»ΠΈ промяна) Π΅ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΎ, позволявайки Ρ‡Ρ€Π΅Π· ΠΈΠ·Ρ€Π°Π·ΠΈ ΠΊΠ°Ρ‚ΠΎ β€žINSERT ... ON CONFLICT DO NOTHING/UPDATEβ€œ Π΄Π° сС ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€Π° Π³Ρ€Π΅ΡˆΠΊΠ° ΠΈΠ»ΠΈ Π΄Π° сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈ актуализация вмСсто вмъкванС, Π°ΠΊΠΎ Π΅ нСвъзмоТно Π΄Π° сС Π΄ΠΎΠ±Π°Π²ΠΈ Π΄Π°Π½Π½ΠΈ Ρ‡Ρ€Π΅Π· β€žINSERTβ€œ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π°ΠΊΠΎ Π²Π΅Ρ‡Π΅ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° запис, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ UPDATE вмСсто INSERT). Новата вСрсия Π²ΠΈ позволява Π΄Π° посочитС мноТСство Π±Π»ΠΎΠΊΠΎΠ²Π΅ ON CONFLICT, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ ΠΏΠΎ Ρ€Π΅Π΄. ΠŸΠΎΡΠ»Π΅Π΄Π½ΠΈΡΡ‚ Π±Π»ΠΎΠΊ "ON CONFLICT" позволява ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ΡŠΡ‚ Π·Π° опрСдСлянС Π½Π° ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ Π΄Π° бъдС пропуснат, Π·Π° Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° "DO UPDATE".
  • ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ DELETE, INSERT ΠΈ UPDATE ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ ΠΈΠ·Ρ€Π°Π·Π° RETURNING, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΈΠ·Ρ‚Ρ€ΠΈΡ‚, Π²ΠΌΡŠΠΊΠ½Π°Ρ‚ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ запис. НапримСр ΠΈΠ·Ρ€Π°Π·ΡŠΡ‚ β€žΠ²ΠΌΡŠΠΊΠ²Π°Π½Π΅ Π² ... Π²Ρ€ΡŠΡ‰Π°Ρ‰ сС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€β€œ Ρ‰Π΅ Π²ΡŠΡ€Π½Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π½Π° добавСния Ρ€Π΅Π΄, Π° β€žΠ°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ... Π·Π°Π΄Π°Π΄Π΅Π½Π° Ρ†Π΅Π½Π° = Ρ†Π΅Π½Π° * 1.10 Π²Ρ€ΡŠΡ‰Π°Ρ‰Π° Ρ†Π΅Π½Π°β€œ Ρ‰Π΅ Π²ΡŠΡ€Π½Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½Π°Ρ‚Π° стойност Π½Π° Ρ†Π΅Π½Π°Ρ‚Π°.
  • Π—Π° ΠΎΠ±Ρ‰ΠΈ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΈ ΠΈΠ·Ρ€Π°Π·ΠΈ (CTE), ΠΊΠΎΠΈΡ‚ΠΎ позволяват ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ Π½Π°ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½ΠΈ Π½Π°Π±ΠΎΡ€ΠΈ ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ, посочСни с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° WITH, Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ ΠΈΠ·Π±ΠΎΡ€ΡŠΡ‚ Π½Π° Ρ€Π΅ΠΆΠΈΠΌΠΈ β€žΠœΠΠ’Π•Π Π˜ΠΠ›Π˜Π—Π˜Π ΠΠβ€œ ΠΈ β€žΠΠ•ΠœΠΠ’Π•Π Π˜ΠΠ›Π˜Π—Π˜Π ΠΠβ€œ. β€žΠœΠΠ’Π•Π Π˜ΠΠ›Π˜Π—Π˜Π ΠΠβ€œ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π° ΠΊΠ΅ΡˆΠΈΡ€Π°Π½Π΅ Π½Π° заявката, посочСна Π² ΠΈΠ·Π³Π»Π΅Π΄Π°, Π² ΠΎΡ‚Π΄Π΅Π»Π½Π° физичСска Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΈ слСд Ρ‚ΠΎΠ²Π° ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ Ρ‚Π°Π·ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°, Π° с β€žΠΠ•ΠœΠΠ’Π•Π Π˜ΠΠ›Π˜Π—Π˜Π ΠΠβ€œ Ρ‰Π΅ сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ повтарящи сС заявки ΠΏΡ€ΠΈ всСки Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΈΠ·Π³Π»Π΅Π΄Π°. SQLite ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ Π΅ Π·Π°Π΄Π°Π΄Π΅Π½ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° β€žNOT MATERIALIZEDβ€œ, Π½ΠΎ сСга Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½ Π½Π° β€žMATERIALIZEDβ€œ Π·Π° CTE, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ вСднъТ.
  • НамалСна консумация Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΏΡ€ΠΈ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° опСрация VACUUM Π²ΡŠΡ€Ρ…Ρƒ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ TEXT ΠΈΠ»ΠΈ BLOB стойности.
  • Π˜Π·Π²ΡŠΡ€ΡˆΠ΅Π½Π° Π΅ Ρ€Π°Π±ΠΎΡ‚Π° Π·Π° повишаванС Π½Π° производитСлността Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€Π° ΠΈ ΠΏΠ»Π°Π½Π΅Ρ€Π° Π½Π° заявки:
    • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ са ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ min ΠΈ max с ΠΈΠ·Ρ€Π°Π·Π° "IN".
    • Π˜Π·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° EXISTS Π΅ ускорСно.
    • Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΎ Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ²Π°Π½Π΅ Π½Π° подзаявки ΠΎΡ‚ UNION ALL ΠΈΠ·Ρ€Π°Π·ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ част ΠΎΡ‚ JOIN.
    • Π˜Π½Π΄Π΅ΠΊΡΡŠΡ‚ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΈΠ·Ρ€Π°Π·ΠΈ IS NOT NULL.
    • Π“Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°, Ρ‡Π΅ "x IS NULL" ΠΈ "x IS NOT NULL" сС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Ρ‚ Π² FALSE ΠΈΠ»ΠΈ TRUE Π·Π° ΠΊΠΎΠ»ΠΎΠ½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠΌΠ°Ρ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° "NOT NULL".
    • ΠŸΡ€ΠΎΠΏΡƒΡΠ½Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° Π½Π° външни ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ Π² UPDATE, Π°ΠΊΠΎ опСрацията Π½Π΅ промСня ΠΊΠΎΠ»ΠΎΠ½ΠΈΡ‚Π΅, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с външния ΠΊΠ»ΡŽΡ‡.
    • Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ Π΅ Π΄Π° сС прСмСстват части ΠΎΡ‚ Π±Π»ΠΎΠΊ WHERE Π² подзаявки, ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‰ΠΈ ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ‡Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, стига Ρ‚Π΅Π·ΠΈ части Π΄Π° са ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈ Π΄ΠΎ Ρ€Π°Π±ΠΎΡ‚Π° с константи ΠΈ копия Π½Π° ΠΈΠ·Ρ€Π°Π·ΠΈ ΠΎΡ‚ PARTITION BY Π±Π»ΠΎΠΊΠΎΠ²Π΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ във ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ‡Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.
  • ΠŸΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² интСрфСйса Π½Π° командния Ρ€Π΅Π΄:
    • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° ".filectrl data_version".
    • ΠšΠΎΠΌΠ°Π½Π΄ΠΈΡ‚Π΅ ".once" ΠΈ ".output" Π²Π΅Ρ‡Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΈΠ·Ρ…ΠΎΠ΄ към ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€, ΠΈΠ·Π²ΠΈΠΊΠ°Π½ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Π½Π΅ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½ΠΈ ΠΊΠ°Π½Π°Π»ΠΈ ("|").
    • АргумСнтитС β€žstmtβ€œ ΠΈ β€žvmstepβ€œ са Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ към ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° β€ž.statsβ€œ Π·Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° статистичСски Π΄Π°Π½Π½ΠΈ Π·Π° ΠΈΠ·Ρ€Π°Π·ΠΈ ΠΈ броячи Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ машини.

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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€