ืžืขืœื“ื•ื ื’ ืคื•ืŸ DuckDB 0.10.0, ืึทืŸ SQLite ื•ื•ืึทืจื™ืึทื ื˜ ืคึฟืึทืจ ืึทื ืึทืœื™ืกื™ืก ืคึฟืจืื’ืŸ

ื“ื™ ืžืขืœื“ื•ื ื’ ืคื•ืŸ ื“ื™ DuckDB 0.10.0 DBMS ืื™ื– ื“ืขืจืœืื ื’ื˜, ืงืึทืžื‘ื™ื™ื ื™ื ื’ ืึทื–ืึท ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืคื•ืŸ SQLite ื•ื•ื™ ืงืึทืžืคึผืึทืงื˜ื ืึทืก, ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ ืึทืŸ ืขืžื‘ืขื“ื™ื“ ื‘ื™ื‘ืœื™ืึธื˜ืขืง, ืกื˜ืึธืจื™ื ื’ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืื™ืŸ ืื™ื™ืŸ ื˜ืขืงืข ืื•ืŸ ืึท ื‘ืึทืงื•ื•ืขื CLI ืฆื•ื‘ื™ื ื“, ืžื™ื˜ ืžื›ืฉื™ืจื™ื ืื•ืŸ ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทื ื– ืคึฟืึทืจ ืขืงืกืึทืงื™ื•ื˜ื™ื ื’. ืึทื ืึทืœื™ื˜ื™ืงืึทืœ ืคึฟืจืื’ืŸ ื•ื•ืึธืก ื“ืขืงืŸ ืึท ื‘ืึทื˜ื™ื™ื˜ื™ืง ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ืกื˜ืึธืจื“ ื“ืึทื˜ืŸ, ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ ืึทื– ืฆื•ื ื•ื™ืคื’ื™ืกืŸ ื“ื™ ื’ืื ืฆืข ืื™ื ื”ืึทืœื˜ ืคื•ืŸ ื˜ื™ืฉืŸ ืึธื“ืขืจ ืฆื•ื ื•ื™ืคื’ื™ืกืŸ ืขื˜ืœืขื›ืข ื’ืจื•ื™ืก ื˜ื™ืฉืŸ. ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืงืึธื“ ืื™ื– ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ืื•ื ื˜ืขืจ ื“ื™ MIT ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ. ื“ื™ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื™ื– ื ืึธืš ืื™ืŸ ื“ืขืจ ื‘ื™ื ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ืคืึธืจืžื™ื ื’ ื™ืงืกืคึผืขืจืžืขื ืึทืœ ืจื™ืœื™ืกื™ื–, ื–ื™ื ื˜ ื“ื™ ืกื˜ืึธืจื™ื“ื–ืฉ ืคึฟืึธืจืžืึทื˜ ืื™ื– ื ืึธืš ื ื™ืฉื˜ ืกื˜ื™ื™ื‘ืึทืœื™ื™ื–ื“ ืื•ืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ ืคื•ืŸ ื•ื•ืขืจืกื™ืข ืฆื• ื•ื•ืขืจืกื™ืข.

DuckDB ื’ื™ื˜ ืึท ืึทื•ื•ืึทื ืกื™ืจื˜ืข SQL ื“ื™ืืœืขืงื˜ ื•ื•ืึธืก ื›ื•ืœืœ ื ืึธืš ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื– ืคึฟืึทืจ ื”ืึทื ื“ืœื™ื ื’ ื–ื™ื™ืขืจ ืงืึธืžืคึผืœื™ืฆื™ืจื˜ ืื•ืŸ ืฆื™ื™ื˜-ืงืึทื ืกื•ืžื™ื ื’ ืคึฟืจืื’ืŸ. ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ืงืึธืžืคึผืœืขืงืก ื˜ื™ื™ืคึผืก (ืขืจื™ื™ื–, ืกื˜ืจืึทืงื˜ืฉืขืจื–, ื™ื•ื ื™ืึทื ื–) ืื•ืŸ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื•ื™ืกืคื™ืจืŸ ืึทืจื‘ื™ื˜ืจืึทืจื™ืฉ ืื•ืŸ ื ืขืกื˜ืขื“ ืงืึธืจืึทืœื™ื™ื˜ื™ื ื’ ืกืึทื‘ืงื•ื•ืขืจื™ื– ื–ืขื ืขืŸ ื’ืขืฉื˜ื™ืฆื˜. ืขืก ืฉื˜ื™ืฆื˜ ืคืœื™ืกื ื“ื™ืง ืงื™ื™ืคืœ ืงื•ื•ื™ืจื™ื– ืกื™ื™ืžืึทืœื˜ื™ื™ื ื™ืึทืกืœื™, ืคืœื™ืกื ื“ื™ืง ืงื•ื•ื™ืจื™ื– ื’ืœื™ื™ึทืš ืคึฟื•ืŸ ืงืกื•ื• ืื•ืŸ ืคึผืึทืจืงื•ื•ืขื˜ ื˜ืขืงืขืก. ืขืก ืื™ื– ืžืขื’ืœืขืš ืฆื• ืึทืจื™ื™ึทื ืคื™ืจ ืคึฟื•ืŸ ื“ื™ PostgreSQL DBMS.

ืื™ืŸ ืึทื“ื™ืฉืึทืŸ ืฆื• ื“ื™ ืฉืึธืœ ืงืึธื“ ืคื•ืŸ SQLite, ื“ื™ ืคึผืจื•ื™ืขืงื˜ ื ื™ืฆื˜ ืึท ืคึผืึทืจืกืขืจ ืคื•ืŸ PostgreSQL ืื™ืŸ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ื‘ื™ื‘ืœื™ืึธื˜ืขืง, ื“ื™ Date Math ืงืึธืžืคึผืึธื ืขื ื˜ ืคื•ืŸ MonetDB, ื–ื™ื™ืŸ ืื™ื™ื’ืขื ืข ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ืคึฟืขื ืฆื˜ืขืจ ืคืึทื ื’ืงืฉืึทื ื– (ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ Segment Tree Aggregation ืึทืœื’ืขืจื™ื“ืึทื), ืึท ืจืขื’ื•ืœืขืจ ืื•ื™ืกื“ืจื•ืง ืคึผืจืึทืกืขืกืขืจ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ RE2 ื‘ื™ื‘ืœื™ืึธื˜ืขืง, ื–ื™ื™ืŸ ืื™ื™ื’ืขื ืข ืึธื ืคึฟืจืขื’ ืึธืคึผื˜ื™ืžื™ื–ืขืจ, ืื•ืŸ ืึท MVCC ืงืึธื ื˜ืจืึธืœ ืžืขืงืึทื ื™ื–ืึทื ืกื™ื™ืžืึทืœื˜ื™ื™ื ื™ืึทืก ื“ื•ืจื›ืคื™ืจื•ื ื’ ืคื•ืŸ ื˜ืึทืกืงืก (ืžื•ืœื˜ื™-ื•ื•ืขืจืกื™ืึธืŸ ืงืึธื ืงื•ืจืจืขื ืกืข ืงืึธื ื˜ืจืึธืœ), ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ืึท ื•ื•ืขืงื˜ืึธืจื™ื–ืขื“ ืึธื ืคึฟืจืขื’ ื“ื•ืจื›ืคื™ืจื•ื ื’ ืžืึธื˜ืึธืจ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ ืึทืœื’ืขืจื™ื“ืึทื ืคื•ืŸ Hyper-Pipelining Query Execution, ื•ื•ืึธืก ืึทืœืึทื•ื– ื’ืจื•ื™ืก ื•ื•ืึทืœื•ืขืก. ืฆื• ื–ื™ื™ืŸ ืคึผืจืึทืกืขืกื˜ ืื™ืŸ ืึทืžืึธืœ ืื™ืŸ ืื™ื™ืŸ ืึธืคึผืขืจืึทืฆื™ืข.

ืฆื•ื•ื™ืฉืŸ ื“ื™ ืขื ื“ืขืจื•ื ื’ืขืŸ ืื™ืŸ ื“ื™ ื ื™ื™ึทืข ืžืขืœื“ื•ื ื’:

  • ื“ื™ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคื•ืŸ ืคึผืึทืจืกื™ื ื’ ื“ืึทื˜ืŸ ืื™ืŸ ืงืกื•ื• ืคึฟืึธืจืžืึทื˜ ืื™ื– ื‘ืื˜ื™ื™ื˜ื™ืง ื™ืžืคึผืจื•ื•ื•ื“. ืœืžืฉืœ, ืœื™ื™ืขื ืขืŸ ืึท ืงืกื•ื• ื˜ืขืงืข ืžื™ื˜ 11 ืžื™ืœื™ืึธืŸ ืจืึธื•ื– ืื™ืŸ ื“ื™ ื ื™ื™ึทืข ื•ื•ืขืจืกื™ืข ืื™ื– ืจื™ื“ื•ืกื˜ ืคึฟื•ืŸ 2.6 ืกืขืงื•ื ื“ืขืก. ืึทืจื•ื™ืฃ ืฆื• 1.15 ืกืขืงื•ื ื“ืขืก, ืื•ืŸ ื“ื•ืจื›ืคื™ืจืŸ ื“ื™ "SELECT COUNT(*)" ืึธืคึผืขืจืึทืฆื™ืข ืื•ื™ืฃ ืฉืคึผื™ืฅ ืคื•ืŸ ืึท ืงืกื•ื• ื˜ืขืงืข ืคึฟื•ืŸ 1.8 ืกืขืงื•ื ื“ืขืก. ืึทืจื•ื™ืฃ ืฆื• 0.3 ืกืขืง.
  • ืฆื•ื’ืขื’ืขื‘ืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืคืึทืจืคืขืกื˜ื™ืงื˜-ื’ืจื™ื™ืก ืขืจื™ื™ื–, ื•ื•ืึธืก ืจื™ื–ืขืžื‘ืึทืœ ืจืฉื™ืžื•ืช ืžื™ื˜ ืึท ืคืึทืจืคืขืกื˜ื™ืงื˜ ื ื•ืžืขืจ ืคื•ืŸ ืขืœืขืžืขื ื˜ืŸ ("CREATE TABLE ื•ื•ืขืงื˜ืึธืจืก (v DOUBLE [3]);").
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืงืึทื ืขืงื˜ื™ื ื’ ืฆื• MySQL, PostgreSQL ืื•ืŸ SQLite DBMS, ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืžืึทืกืข ื“ืึทื˜ืŸ ืคึฟื•ืŸ ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง DBMS ืื™ืŸ DuckDB ืื•ืŸ ืžืึทืš ืขืก ืฆื•ื•ื™ืฉืŸ ืคืึทืจืฉื™ื“ืขื ืข ืกื™ืกื˜ืขืžืขืŸ. ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื– ื–ืขื ืขืŸ ืึทืงืกืขืกื˜ ื ื™ืฆืŸ ื ืึธืจืžืึทืœ ื˜ื™ืฉืŸ. ATTACH 'postgres:dbname=postgresscanner' ื•ื•ื™ postgres; ืื•ื™ืกืงืœื™ื™ึทื‘ืŸ ื˜ื™ื˜ืœ, release_year, ืœืขื ื’ ืคึฟื•ืŸ postgres.film LIMIT 5;
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ "COMMENT ON" ืื•ื™ืกื“ืจื•ืง ืคึฟืึทืจ ืฉืคึผืึธืจืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’ ื•ื•ืขื’ืŸ ืึท ื›ื™ื™ืคืขืฅ ืื™ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก.
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ "COPY FROM DATABASE" ืื•ื™ืกื“ืจื•ืง ืคึฟืึทืจ ืงืึทืคึผื™ื™ื ื’ ืึทืœืข ืื™ื ื”ืึทืœื˜ ืคื•ืŸ ืื™ื™ืŸ ื“ืึทื˜ืึทื‘ื™ื™ืก ืฆื• ืื ื“ืขืจืŸ.
  • ืฆื•ื’ืขื’ืขื‘ืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ "ืึทืœืข" ืžืึธื“ื™ืคื™ืขืจ ืื™ืŸ ืึทื—ื•ืฅ ืื•ืŸ ื™ื ื˜ืขืจืกืขืงื˜ ืื•ื™ืกื“ืจื•ืงืŸ.
  • ื™ืžืคึผืœืึทืžืขื ื˜ืึทื“ ื˜ื™ืคึผ ยป

    ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’