Π Π΅Π»ΠΈΠ· Π½Π° Π‘Π£Π‘Π” DuckDB 1.2.0

ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π° вСрсия Π½Π° Π‘Π£Π‘Π” DuckDB 1.2.0, насочСна Π½Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° Π°Π½Π°Π»ΠΈΡ‚ΠΈΡ‡Π½ΠΈ запитвания ΠΈ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»Π½ΠΎ напомняща Π½Π° SQLite. DuckDB ΡΡŠΡ‡Π΅Ρ‚Π°Π²Π° свойства Π½Π° SQLite ΠΊΠ°Ρ‚ΠΎ компактност, интСграция ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° Π²Π³Ρ€Π°Π΄Π΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ Π² Π΅Π΄ΠΈΠ½ Ρ„Π°ΠΉΠ» ΠΈ CLI интСрфСйс, с Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° Π°Π½Π°Π»ΠΈΡ‚ΠΈΡ‡Π½ΠΈ запитвания, ΠΎΠ±Ρ…Π²Π°Ρ‰Π°Ρ‰ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½Π° част ΠΎΡ‚ ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Ρ‰ΠΈ агрСгация Π½Π° цялото ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ обСдиняванС Π½Π° няколко Π³ΠΎΠ»Π΅ΠΌΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π΅ написан Π½Π° C++ ΠΈ сС разпространява ΠΏΠΎΠ΄ лицСнзия MIT.

DuckDB ΠΏΡ€Π΅Π΄Π»Π°Π³Π° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ Π½Π° SQL, ΠΊΠΎΠΉΡ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π²Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ слоТни ΠΈ Π΄ΡŠΠ»Π³ΠΎΡ‚Ρ€Π°ΠΉΠ½ΠΈ запитвания. ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° слоТни Ρ‚ΠΈΠΏΠΎΠ²Π΅ (масиви, структури, обСдинСния) ΠΈ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ ΠΈ Π²Π»ΠΎΠΆΠ΅Π½ΠΈ ΠΊΠΎΡ€Π΅Π»Π°Ρ‚ΠΈΠ²Π½ΠΈ подзапитвания. ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° сС Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° няколко запитвания ΠΈ изпълнСниС Π½Π° запитвания Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΡ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ във Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ CSV ΠΈ Parquet. НалицС Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΎΡ‚ Π‘Π£Π‘Π” PostgreSQL.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΠ±Π²ΠΈΠ²ΠΊΠ° ΠΎΡ‚ SQLite, парсСр ΠΎΡ‚ PostgreSQL, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Date Math ΠΎΡ‚ MonetDB, собствСна рСализация Π½Π° ΠΎΠΊΠΎΠ½Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΠ° Segment Tree Aggregation), ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π° рСгулярни ΠΈΠ·Ρ€Π°Π·ΠΈ, Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° RE2, собствСн ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ Π½Π° запитвания, ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° многопоточност (Multi-Version Concurrency Control), Π° ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·ΠΈΡ€Π°Π½ Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π» Π·Π° изпълнСниС Π½Π° запитвания, Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΠ° Hyper-Pipelining Query Execution, ΠΊΠΎΠΉΡ‚ΠΎ позволява Π² Π΅Π΄Π½Π° опСрация Π΄Π° сС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚ Π³ΠΎΠ»Π΅ΠΌΠΈ Π½Π°Π±ΠΎΡ€ΠΈ ΠΎΡ‚ стойности.

Π’ Π½ΠΎΠ²Π°Ρ‚Π° вСрсия:

  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Π½ΠΎΠ²ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π·Π° компрСсия, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ са Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π·Π° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚Ρ‚Π° Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ с ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈ вСрсии Π½Π° DuckDB. Π—Π° Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° подобрСният Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ, Π΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ с вСрсия: ΠΏΡ€ΠΈ отварянС Π½Π° Ρ„Π°ΠΉΠ»Π° с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π° β€žSTORAGE_VERSIONβ€œ Π²Π΅Ρ‡Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π·Π°Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½Π° вСрсия Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: β€žATTACH β€˜file.db’ (STORAGE_VERSION β€˜v1.2.0’);β€œ). Π—Π° ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° новия Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π² стария ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° SQL ΠΊΠΎΠΌΠ°Π½Π΄Π° COPY, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: ATTACH β€˜file1.db’; ATTACH β€˜converted_file.db’ (STORAGE_VERSION β€˜v1.0.0’); COPY FROM DATABASE file1 TO converted_file;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° SQL ΠΊΠΎΠΌΠ°Π½Π΄Π° β€žALTER TABLE … ADD PRIMARY KEYβ€œ Π·Π° добавянС Π½Π° основСн ΠΊΠ»ΡŽΡ‡ към ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°.
  • ΠŸΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚ΠΎ Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅Ρ‚ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½Π΅ позволява ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ добавянС Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈ, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° индСкс Π·Π° прослСдяванС Π½Π° уникалност, Π°ΠΊΠΎ Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈ са Π±ΠΈΠ»ΠΈ ΠΈΠ·Ρ‚Ρ€ΠΈΡ‚ΠΈ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° транзакция. НапримСр, слСдният SQL ΠΊΠΎΠ΄ сСга Π½Π΅ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Π³Ρ€Π΅ΡˆΠΊΠ°: CREATE TABLE students (id INTEGER PRIMARY KEY, name VARCHAR); INSERT INTO students VALUES (1, β€˜John Doe’); BEGIN; DELETE FROM students WHERE id = 1; INSERT INTO students VALUES (1, β€˜Jane Doe’);
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° CSV Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ Latin-1 ΠΈ UTF-16 (ΠΏΡ€Π΅Π΄ΠΈ сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°ΡˆΠ΅ само ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° UTF-8). FROM read_csv(β€˜cities-latin-1.csv’, encoding = β€˜latin-1’);
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ (Π΄ΠΎ 4 Π±Π°ΠΉΡ‚Π°) Π² CSV Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π΅ΠΌΠΎΠ΄ΠΆΠΈ ΠΊΠ°Ρ‚ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΈ. aπŸ¦†b helloπŸ¦†world FROM read_csv(β€˜example.dsv’, sep = β€˜πŸ¦†β€™);
  • По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ строг Ρ€Π΅ΠΆΠΈΠΌ Π½Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° CSV Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ (β€žstrict_mode = trueβ€œ), ΠΊΠΎΠΉΡ‚ΠΎ провСрява ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅Ρ‚ΠΎ с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° спСцификация RFC 4180. Π’ строг Ρ€Π΅ΠΆΠΈΠΌ Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ само Π½Π° Π΅Π΄ΠΈΠ½ символ Π·Π° раздСлянС Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ‰Π΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π³Ρ€Π΅ΡˆΠΊΠ° ΠΏΡ€ΠΈ ΠΎΠΏΠΈΡ‚ Π·Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Π² ΠΊΠΎΠΈΡ‚ΠΎ Π·Π° раздСлянС Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π΅ само символа Π·Π° Π½ΠΎΠ² Ρ€Π΅Π΄, Π½ΠΎ ΠΈ символа Π·Π° Π²Ρ€ΡŠΡ‰Π°Π½Π΅ Π½Π° ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠ°Ρ‚Π° (β€ž\r\nβ€œ).
  • Π’ парсСра Π·Π° CSV Π΅ Π²Π½Π΅Π΄Ρ€Π΅Π½ Π½ΠΎΠ² Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Π·Π° опрСдСлянС Π½Π° Π½ΠΎΠ² Ρ€Π΅Π΄, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΏΠ°Ρ€Π°Π»Π΅Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° новия Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Π΅ ускорило Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° CSV ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»Π½ΠΎ с 15%.
  • ΠŸΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚ΠΎ Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π·Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π° Ρ€Π΅Π΄Π° Π² CSV Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ (ΠΏΡ€Π΅Π΄ΠΈ Ρ€Π΅Π΄ΡŠΡ‚ Π½Π΅ Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° надвишава 8 MB).
  • ΠŸΡ€ΠΈ СкспортиранС Π½Π° Π΄Π°Π½Π½ΠΈ във Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Parquet Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Ρ…Π΅ΡˆΠΎΠ²Π΅ (словаритС) ΠΈ индСкси, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° Bloom Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈ. Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π° компрСсия DELTA_BINARY_PACKED, ΠΊΠΎΠΉΡ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ намалява Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° Parquet Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅.
  • Π’ интСрфСйса Π½Π° командния Ρ€Π΅Π΄ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ бСзопасСн Ρ€Π΅ΠΆΠΈΠΌ, Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠ΅ΠΌ Ρ‡Ρ€Π΅Π· опцията Β«-safeΒ» ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Β«.safe_modeΒ». Π’ Ρ‚ΠΎΠ·ΠΈ Ρ€Π΅ΠΆΠΈΠΌ Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ Π΄ΠΎΡΡ‚ΡŠΠΏ само Π΄ΠΎ посочСния ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ Ρ„Π°ΠΉΠ» Π½Π° Π‘Π”, Π° ΠΎΠΏΠΈΡ‚ΡŠΡ‚ Π·Π° отварянС Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Ρ‰Π΅ ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ° Π³Ρ€Π΅ΡˆΠΊΠ°.
  • Π’ интСрфСйса Π½Π° командния Ρ€Π΅Π΄ Π΅ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎΡ‚ΠΎ допълванС Π½Π° Π²Ρ…ΠΎΠ΄Π°. ΠšΠΎΠ΄ΡŠΡ‚ Π·Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ допълванС Π΅ ΠΏΡ€Π΅Π²Π΅Π΄Π΅Π½ Π½Π° PEG (Parsing Expression Grammar).
  • ΠŸΡ€ΠΈ изпълнСниС Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π² интСрфСйса Π½Π° командния Ρ€Π΅Π΄ Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»Π½ΠΎ прСдставянС Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ числа, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС ΠΏΠΎΠΊΠ°Π·Π²Π° числото 100000000, Ρ‰Π΅ бъдС Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΎ Β«(100 ΠΌΠΈΠ»ΠΈΠΎΠ½Π°)Β».
  • Π’ SQL Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° синтаксис, ΠΏΡ€ΠΈ ΠΊΠΎΠΉΡ‚ΠΎ ΡΡŠΠΊΡ€Π°Ρ‚Π΅Π½ΠΈΡ‚Π΅ ΠΈΠΌΠ΅Π½Π° Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ ΠΈ ΠΈΠ·Ρ€Π°Π·ΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ посочСни ΠΏΡ€Π΅Π΄ΠΈ стойноститС, Π½Π° ΠΊΠΎΠΈΡ‚ΠΎ сочат (вмСсто синтаксиса Β«ΠΈΠ·Ρ€Π°Π· AS ΠΈΠΌΠ΅Β»): SELECT e1: some_long_and_winding_expression, e2: t2.a_column_name FROM t1: long_schema.some_long_table_name, t2: short_s.tbl;
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Β«SELECTΒ» Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° опСрацията Β«RENAMEΒ» Π·Π° ΠΏΡ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ»Π΅Ρ‚Π°, ΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈ ΠΏΡ€ΠΈ посочванС Π½Π° ΠΈΠ·Ρ€Π°Π·Π° Β«*Β»: SELECT * RENAME (col1 AS new_col1) FROM integers;
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Β«SELECTΒ» Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ Β«LIKEΒ» ΠΈ Β«SIMILAR TOΒ» ΠΏΡ€ΠΈ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Β«*Β»: SELECT * LIKE β€˜val%’ FROM key_val;
  • ПовишСно Π΅ качСството Π½Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° псСвдослучайни числа.
  • ΠœΠΎΠ΄Π΅Ρ€Π½ΠΈΠ·ΠΈΡ€Π°Π½ Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ΡŠΡ‚ Π½Π° запитвания. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π½ΠΎΡΡ‚Ρ‚Π° ΠΏΡ€ΠΈ тСста TPC-H SF100 сС Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ»Π° с 13%.
  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π΅ Π½ΠΎΠ² C-ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ API Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ Π½Π° Π΄ΠΎΠ±Π°Π²ΠΊΠΈ, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π° създаванС Π½Π° Π½ΠΎΠ²ΠΈ Π°Π³Ρ€Π΅Π³Π°Ρ‚Π½ΠΈ ΠΈΠ»ΠΈ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° систСми със стандартната C Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Musl.

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

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