Π Π΅Π»ΠΈΠ· Π½Π° Π‘Π£Π‘Π” SQLite 3.31 с ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΈ

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

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

  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΈ (изчисляСми ΠΊΠΎΠ»ΠΎΠ½ΠΈ), ΠΊΠΎΠΈΡ‚ΠΎ позволяват ΠΏΡ€ΠΈ създаванС Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° Π΄Π° сС ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈ ΠΊΠΎΠ»ΠΎΠ½Π°, чиято стойност сС изчислява Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π΄Ρ€ΡƒΠ³Π° ΠΊΠΎΠ»ΠΎΠ½Π°. Π“Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΊΠ°ΠΊΡ‚ΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ (Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΈ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΏΡ€ΠΈ всяко ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅), Ρ‚Π°ΠΊΠ° ΠΈ ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½ΠΈ Π² Π‘Π” (ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ сС ΠΏΡ€ΠΈ всяко ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ). Π‘ΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΎ само Π² Ρ€Π΅ΠΆΠΈΠΌ Π½Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ (промяна ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈ само Ρ‡Ρ€Π΅Π· модификация Π½Π° стойността Π² Π΄Ρ€ΡƒΠ³Π° ΠΊΠΎΠ»ΠΎΠ½Π°, участваща Π² изчислСниСто). НапримСр:

    CREATE TABLE t1(
    a INTEGER PRIMARY KEY,
    b INT,
    c TEXT,
    d INT GENERATED ALWAYS AS (a*abs(b)) VIRTUAL,
    e TEXT GENERATED ALWAYS AS (substr(c,b,b+1)) STORED
    );

  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ PRAGMA trusted_schema, настройка SQLITE_DBCONFIG_TRUSTED_SCHEMA ΠΈ опция Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ β€ž-DSQLITE_TRUSTED_SCHEMAβ€œ, позволяващи ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° активацията Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π°Ρ‚Π° ΠΎΡ‚ Π°Ρ‚Π°ΠΊΠΈ Ρ‡Ρ€Π΅Π· модификация Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π² Π‘Π”. ΠŸΡ€ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π° сС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° SQL Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Π½Π΅ ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ SQLITE_INNOCUOUS) Π² Ρ‚Ρ€ΠΈΠ³Π΅Ρ€ΠΈ, ΠΈΠ·Π³Π»Π΅Π΄ΠΈ, CHECK ΠΈ DEFAULT ΠΈΠ·Ρ€Π°Π·ΠΈ, индСкси ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΈ. Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° сС Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ Π² Ρ‚Ρ€ΠΈΠ³Π΅Ρ€ΠΈ ΠΈ ΠΈΠ·Π³Π»Π΅Π΄ΠΈ, освСн Π°ΠΊΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π°Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° Π½Π΅ Π΅ ΠΈΠ·Ρ€ΠΈΡ‡Π½ΠΎ обявСна с Ρ„Π»Π°Π³Π° SQLITE_VTAB_INNOCUOUS.
  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° присвояванС Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ свойства Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π² SQL прилоТСнията SQLITE_INNOCUOUS (Π±Π΅Π·Π²Ρ€Π΅Π΄Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ зависят ΠΎΡ‚ външни ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ ΠΈ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π·Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈ дСйствия) ΠΈ SQLITE_DIRECTONLY (само Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π² SQL заявки, Π±Π΅Π· Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Ρ‚Ρ€ΠΈΠ³Π΅Ρ€ΠΈ, ΠΈΠ·Π³Π»Π΅Π΄ΠΈ ΠΈ структури ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ);
  • Π”ΠΎΠ±Π°Π²Π΅Π½ ΠΌΠΎΠ΄ΡƒΠ» uuid с рСализация Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° UUID (RFC-4122);
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° PRAGMA hard_heap_limit ΠΈ функция sqlite3_hard_heap_limit64() Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° максималния Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π° ΠΊΡƒΠΏΡ‡ΠΈΠ½Π°Ρ‚Π°;
  • Π’ PRAGMA function_list Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΎ Π΅ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Ρ‚ΠΈΠΏΠ°, свойствата ΠΈ броя Π½Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π·Π° всяка функция;
  • Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π°Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° DBSTAT Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ Π½Π° Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ;
  • Π’ sqlite3_open_v2() Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° опцията SQLITE_OPEN_NOFOLLOW, позволяваща Π·Π°Π±Ρ€Π°Π½Π° Π·Π° отварянС Π½Π° символични Π»ΠΈΠ½ΠΊΠΎΠ²Π΅;
  • Π—Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° PATH, ΠΏΡ€Π΅Π΄Π°Π²Π°Π½ Π² JSON Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅, Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° нотацията Π·Π° масиви β€ž#-Nβ€œ;
  • Π’ систСмата Π·Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° lookaside Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Π΄Π²Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ ΠΏΡƒΠ»Π° ΠΏΠ°ΠΌΠ΅Ρ‚, всСки ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° разпрСдСлянС Π½Π° Π±Π»ΠΎΠΊΠΎΠ²Π΅ с Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΈ (Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ позволява Π΄Π° сС Ρ€Π°Π·ΡˆΠΈΡ€ΠΈ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°Ρ‚Π° Π½Π° систСмата lookaside, намалявайки Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° Π±ΡƒΡ„Π΅Ρ€Π°, задСлян Π·Π° всяко ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ ΠΎΡ‚ 120 Π½Π° 48 ΠšΠ‘);
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° PRAGMA Π΅ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚Π΅Π½Π° legacy_file_format, която Π½Π΅ бСшС ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠ° с VACUUM, Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ ΠΈ намаляващитС индСкси (ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° остарСлия Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²Π΅Π½Π° Ρ‡Ρ€Π΅Π· Ρ„Π»Π°Π³Π° SQLITE_DBCONFIG_LEGACY_FILE_FORMAT Π² sqlite3_db_config()).

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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster