ืฉื—ืจื•ืจ ื”-DBMS ื”ืžื‘ื•ื–ืจ TiDB 3.0

ื–ืžื™ืŸ ืฉื—ืจื•ืจ ืฉืœ DBMS ืžื‘ื•ื–ืจ TiDB 3.0, ืฉืคื•ืชื— ื‘ื”ืฉืคืขืช ื”ื˜ื›ื ื•ืœื•ื’ื™ื•ืช ืฉืœ ื’ื•ื’ืœ ืžึทืคืชึตื—ึท ื‘ึผึฐืจึธื’ึดื™ื ะธ F1. TiDB ืฉื™ื™ื›ืช ืœืงื˜ื’ื•ืจื™ื” ืฉืœ ืžืขืจื›ื•ืช HTAP ื”ื™ื‘ืจื™ื“ื™ื•ืช (Hybrid Transactional/Analytical Processing), ื”ืžืกื•ื’ืœื•ืช ื’ื ืœืกืคืง ืขืกืงืื•ืช ื‘ื–ืžืŸ ืืžืช (OLTP) ื•ื’ื ืœืขื‘ื“ ืฉืื™ืœืชื•ืช ืื ืœื™ื˜ื™ื•ืช. ื”ืคืจื•ื™ืงื˜ ื›ืชื•ื‘ ื‘ืฉืคืช Go ื• ืžื•ืคืฅ ืขืœ ื™ื“ื™ ืžื•ืจืฉื” ืชื—ืช Apache 2.0.

ืชื›ื•ื ื•ืช ืฉืœ TiDB:

  • ืชืžื™ื›ื” ื‘-SQL ื•ืืกืคืงืช ืžืžืฉืง ืœืงื•ื— ื”ืชื•ืื ืœืคืจื•ื˜ื•ืงื•ืœ MySQL, ื”ืžืคืฉื˜ ืืช ื”ื”ืชืืžื” ืฉืœ ื™ื™ืฉื•ืžื™ื ืงื™ื™ืžื™ื ืฉื ื›ืชื‘ื• ืขื‘ื•ืจ MySQL ืœ-TiDB, ื•ื›ืŸ ืžืืคืฉืจ ืฉื™ืžื•ืฉ ื‘ืกืคืจื™ื•ืช ืœืงื•ื— ื ืคื•ืฆื•ืช. ื‘ื ื•ืกืฃ ืœืคืจื•ื˜ื•ืงื•ืœ MySQL, ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘-API ืžื‘ื•ืกืก JSON ื•ื‘ืžื—ื‘ืจ ืขื‘ื•ืจ Spark ื›ื“ื™ ืœื’ืฉืช ืœ-DBMS.
  • ืชื›ื•ื ื•ืช SQL ืชื•ืžื›ื•ืช ื‘ืื™ื ื“ืงืกื™ื, ืคื•ื ืงืฆื™ื•ืช ืžืฆื˜ื‘ืจื•ืช, GROUP BY, ORDER BY, ื‘ื™ื˜ื•ื™ื™ DISTINCT, ืžื™ื–ื•ื’ื™ื (LEFT JOIN / RIGHT JOIN / CROSS JOIN), ืชืฆื•ื’ื•ืช, ืคื•ื ืงืฆื™ื•ืช ื—ืœื•ืŸ ื•ืฉืื™ืœืชื•ืช ืžืฉื ื”. ื”ื™ื›ื•ืœื•ืช ื”ืžืกื•ืคืงื•ืช ืžืกืคื™ืงื•ืช ื›ื“ื™ ืœืืจื’ืŸ ืขื‘ื•ื“ื” ืขื TiDB ืขื‘ื•ืจ ื™ื™ืฉื•ืžื™ ืื™ื ื˜ืจื ื˜ ื›ื’ื•ืŸ PhpMyAdmin, Gogs ื•- WordPress;
  • ืžื“ืจื’ื™ื•ืช ืื•ืคืงื™ืช ื•ืกื•ื‘ืœื ื•ืช ืชืงืœื•ืช: ื ื™ืชืŸ ืœื”ื’ื“ื™ืœ ืืช ื’ื•ื“ืœ ื”ืื—ืกื•ืŸ ื•ื›ื•ื— ื”ืขื™ื‘ื•ื“ ืขืœ ื™ื“ื™ ื—ื™ื‘ื•ืจ ืฆืžืชื™ื ื—ื“ืฉื™ื. ื”ื ืชื•ื ื™ื ืžื•ืคืฆื™ื ืขืœ ืคื ื™ ืฆืžืชื™ื ืขื ื™ืชื™ืจื•ืช, ืžื” ืฉืžืืคืฉืจ ืืช ื”ืžืฉืš ื”ืคืขื•ืœื” ืื ืฆืžืชื™ื ื‘ื•ื“ื“ื™ื ื ื›ืฉืœื™ื. ื›ืฉืœื™ื ืžื˜ื•ืคืœื™ื ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™.
  • ื”ืžืขืจื›ืช ืžื‘ื˜ื™ื—ื” ืขืงื‘ื™ื•ืช ื•ืขื‘ื•ืจ ืชื•ื›ื ืช ื”ืœืงื•ื— ื”ื™ื ื ืจืื™ืช ื›ืžื• DBMS ืื—ื“ ื’ื“ื•ืœ, ืœืžืจื•ืช ื”ืขื•ื‘ื“ื” ืฉืœืžืขืฉื”, ื ืชื•ื ื™ื ืžืฆืžืชื™ื ืจื‘ื™ื ื ืžืฉื›ื™ื ืœื”ืฉืœืžืช ื”ืขืกืงื”.
  • ื›ื“ื™ ืœืื—ืกืŸ ื ืชื•ื ื™ื ืคื™ื–ื™ืช ื‘ืฆืžืชื™ื, ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘-backends ืฉื•ื ื™ื, ืœื“ื•ื’ืžื”, ืžื ื•ืขื™ ืื—ืกื•ืŸ ืžืงื•ืžื™ื™ื GoLevelDB ื•- BoltDB ืื• ืžื ื•ืข ืื—ืกื•ืŸ ืžื‘ื•ื–ืจ ืžืฉืœื ื• TiKV.
  • ื”ื™ื›ื•ืœืช ืœืฉื ื•ืช ื‘ืื•ืคืŸ ืืกื™ื ื›ืจื•ื ื™ ืืช ืกื›ื™ืžืช ื”ืื—ืกื•ืŸ, ืžื” ืฉืžืืคืฉืจ ืœืš ืœื”ื•ืกื™ืฃ ืขืžื•ื“ื•ืช ื•ืื™ื ื“ืงืกื™ื ืชื•ืš ื›ื“ื™ ื‘ืœื™ ืœืขืฆื•ืจ ืืช ื”ืขื™ื‘ื•ื“ ืฉืœ ื”ืคืขื•ืœื•ืช ื”ืฉื•ื˜ืคื•ืช.

ื”ืขื™ืงืจื™ ื—ื™ื“ื•ืฉื™ื:

  • ื‘ื•ืฆืขื” ืขื‘ื•ื“ื” ืœื”ื’ื‘ืจืช ื”ืชืคื•ืงื”. ื‘ืžื‘ื—ืŸ Sysbench, ื’ืจืกื” 3.0 ืžื”ื™ืจื” ืคื™ 2.1 ืžื”ืขื ืฃ 1.5 ื‘ืขืช ื‘ื™ืฆื•ืข ืคืขื•ืœื•ืช ื‘ื—ื™ืจื” ื•ืขื“ื›ื•ืŸ, ื•ื‘ืžื‘ื—ืŸ TPC-C ืคื™ 4.5. ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ื”ืฉืคื™ืขื• ืขืœ ืกื•ื’ื™ื ืฉื•ื ื™ื ืฉืœ ืฉืื™ืœืชื•ืช, ื›ื•ืœืœ ืฉืื™ืœืชื•ืช ืžืฉื ื” IN, DO ื•- NOT EXISTS, ืคืขื•ืœื•ืช ืžื™ื–ื•ื’ ื˜ื‘ืœืื•ืช (JOIN), ืฉื™ืžื•ืฉ ื‘ืื™ื ื“ืงืกื™ื ื•ืขื•ื“ ื”ืจื‘ื” ื™ื•ืชืจ;
    ืฉื—ืจื•ืจ ื”-DBMS ื”ืžื‘ื•ื–ืจ TiDB 3.0ืฉื—ืจื•ืจ ื”-DBMS ื”ืžื‘ื•ื–ืจ TiDB 3.0

  • ื ื•ืกืฃ ืžื ื•ืข ืื—ืกื•ืŸ TiFlash ื—ื“ืฉ ื”ืžืืคืฉืจ ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื ื™ื•ืชืจ ื‘ืคืชืจื•ืŸ ื‘ืขื™ื•ืช ืื ืœื™ื˜ื™ื•ืช (OLAP) ื”ื•ื“ื•ืช ืœืื—ืกื•ืŸ ืขืžื•ื“ื™ื. TiFlash ืžืฉืœื™ื ืืช ืื—ืกื•ืŸ TiKV ืฉื”ื•ืฆืข ื‘ืขื‘ืจ, ื”ืžืื—ืกืŸ ื ืชื•ื ื™ื ืœืคื™ ืฉื•ืจื” ื‘ืคื•ืจืžื˜ ืžืคืชื—/ืขืจืš ื•ืื™ื“ื™ืืœื™ ื™ื•ืชืจ ืœืžืฉื™ืžื•ืช ืขื™ื‘ื•ื“ ืขืกืงืื•ืช (OLTP). TiFlash ืขื•ื‘ื“ ื–ื” ืœืฆื“ ื–ื” ืขื TiKV ื•ื”ื ืชื•ื ื™ื ืžืžืฉื™ื›ื™ื ืœื”ื™ื•ืช ืžืฉื•ื›ืคืœื™ื ืœ-TiKV ื›ืžื• ื‘ืขื‘ืจ ืชื•ืš ืฉื™ืžื•ืฉ ื‘ืคืจื•ื˜ื•ืงื•ืœ Raft ื›ื“ื™ ืœืงื‘ื•ืข ืงื•ื ืฆื ื–ื•ืก, ืืš ืขื‘ื•ืจ ื›ืœ ืงื‘ื•ืฆื” ืฉืœ ืจืคืœื™ืงื•ืช Raft ื ื•ืฆืจ ื”ืขืชืง ื ื•ืกืฃ ื”ืžืฉืžืฉ ื‘-TiFlash. ื’ื™ืฉื” ื–ื• ืžืืคืฉืจืช ืฉื™ืชื•ืฃ ืžืฉืื‘ื™ื ื˜ื•ื‘ ื™ื•ืชืจ ื‘ื™ืŸ ืžืฉื™ืžื•ืช OLTP ื•-OLAP, ื•ื›ืŸ ื”ื•ืคื›ืช ืืช ื ืชื•ื ื™ ื”ืขืกืงืื•ืช ืœื–ืžื™ื ื™ื ื‘ืื•ืคืŸ ืžื™ื™ื“ื™ ืขื‘ื•ืจ ืฉืื™ืœืชื•ืช ืื ืœื™ื˜ื™ื•ืช;

    ืฉื—ืจื•ืจ ื”-DBMS ื”ืžื‘ื•ื–ืจ TiDB 3.0

  • ื”ื•ืคืขืœ ืืกืคืŸ ืืฉืคื” ืžื‘ื•ื–ืจ, ืฉื™ื›ื•ืœ ืœื”ื’ื‘ื™ืจ ืžืฉืžืขื•ืชื™ืช ืืช ืžื”ื™ืจื•ืช ืื™ืกื•ืฃ ื”ืืฉืคื” ื‘ืืฉื›ื•ืœื•ืช ื’ื“ื•ืœื™ื ื•ืœืฉืคืจ ืืช ื”ื™ืฆื™ื‘ื•ืช;
  • ื ื•ืกืคื” ื™ื™ืฉื•ื ื ื™ืกื™ื•ื ื™ ืฉืœ ื‘ืงืจืช ื’ื™ืฉื” ืžื‘ื•ืกืกืช ืชืคืงื™ื“ื™ื (RBAC). ืืคืฉืจ ื’ื ืœื”ื’ื“ื™ืจ ื–ื›ื•ื™ื•ืช ื’ื™ืฉื” ืœืคืขื•ืœื•ืช ANALYZE, USE, SET GLOBAL ื•-SHOW PROCESSLIST;
  • ื ื•ืกืคื” ืืช ื”ื™ื›ื•ืœืช ืœื”ืฉืชืžืฉ ื‘ื‘ื™ื˜ื•ื™ื™ SQL ื›ื“ื™ ืœื—ืœืฅ ืฉืื™ืœืชื•ืช ืื™ื˜ื™ื•ืช ืžื”ื™ื•ืžืŸ;
  • ื™ื•ืฉื ืžื ื’ื ื•ืŸ ืœืฉื—ื–ื•ืจ ืžื”ื™ืจ ืฉืœ ื˜ื‘ืœืื•ืช ืฉื ืžื—ืงื•, ื”ืžืืคืฉืจ ืœืš ืœืฉื—ื–ืจ ื ืชื•ื ื™ื ืฉื ืžื—ืงื• ื‘ื˜ืขื•ืช;
  • ื”ืคื•ืจืžื˜ ืฉืœ ื™ื•ืžื ื™ื ืžื•ืงืœื˜ื™ื ืื•ื—ื“;
  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืžืฆื‘ ื ืขื™ืœื” ืคืกื™ืžื™, ืžื” ืฉื”ื•ืคืš ืืช ืขื™ื‘ื•ื“ ื”ืขืกืงืื•ืช ืœื“ื•ืžื” ื™ื•ืชืจ ืœ-MySQL;
  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืคื•ื ืงืฆื™ื•ืช ื—ืœื•ืŸ (ืคื•ื ืงืฆื™ื•ืช ื—ืœื•ืŸ ืื• ืคื•ื ืงืฆื™ื•ืช ืื ืœื™ื˜ื™ื•ืช) ื”ืชื•ืืžื•ืช ืœ-MySQL 8.0. ืคื•ื ืงืฆื™ื•ืช ื—ืœื•ืŸ ืžืืคืฉืจื•ืช ืœืš ืœื‘ืฆืข ื—ื™ืฉื•ื‘ื™ื ืขื‘ื•ืจ ื›ืœ ืฉื•ืจืช ืฉืื™ืœืชื” ื‘ืืžืฆืขื•ืช ืฉื•ืจื•ืช ืื—ืจื•ืช. ื‘ื ื™ื’ื•ื“ ืœืคื•ื ืงืฆื™ื•ืช ืžืฆื˜ื‘ืจื•ืช, ืฉืžื›ื•ื•ืฆื•ืช ืงื‘ื•ืฆื” ืžืงื•ื‘ืฆืช ืฉืœ ืฉื•ืจื•ืช ืœืฉื•ืจื” ืื—ืช, ืคื•ื ืงืฆื™ื•ืช ื—ืœื•ืŸ ืžืฆื˜ื‘ืจื•ืช ืขืœ ืกืžืš ื”ืชื•ื›ืŸ ืฉืœ "ื—ืœื•ืŸ", ื”ื›ื•ืœืœ ืฉื•ืจื” ืื—ืช ืื• ื™ื•ืชืจ ืžืงื‘ื•ืฆืช ื”ืชื•ืฆืื•ืช. ื‘ื™ืŸ ืคื•ื ืงืฆื™ื•ืช ื”ื—ืœื•ื ื•ืช ื”ืžื™ื•ืฉืžื•ืช:
    NTILE, LEAD, LAG, PERCENT_RANK, NTH_VALUE, CUME_DIST, FIRST_VALUE, LAST_VALUE, RANK, DENSE_RANK ื•-ROW_NUMBER;

  • ื ื•ืกืคื” ืชืžื™ื›ื” ื ื™ืกื™ื•ื ื™ืช ืœืชืฆื•ื’ื•ืช (VIEW);
  • ืžืขืจื›ืช ื”ืžื—ื™ืฆื•ืช ืฉื•ืคืจื”, ื ื•ืกืคื” ื”ื™ื›ื•ืœืช ืœื”ืคื™ืฅ ื ืชื•ื ื™ื ืœืžืงื˜ืขื™ื ืขืœ ืกืžืš ืžื’ื•ื•ืŸ ืขืจื›ื™ื ืื• hashes;
  • ื ื•ืกืคื” ืžืกื’ืจืช ืœืคื™ืชื•ื— ืชื•ืกืคื™ื, ืœืžืฉืœ, ืชื•ืกืคื™ื ื›ื‘ืจ ื”ื•ื›ื ื• ืœืฉื™ืžื•ืฉ ื‘ืจืฉื™ืžืช ื”ืœื‘ื ื™ื ืฉืœ IP ืื• ืฉืžื™ืจื” ืขืœ ื™ื•ืžืŸ ื‘ื™ืงื•ืจืช;
  • ื ื™ืชื ื” ืชืžื™ื›ื” ื ื™ืกื™ื•ื ื™ืช ืขื‘ื•ืจ ื”ืคื•ื ืงืฆื™ื” "EXPLAIN ANALYZE" ืœื‘ื ื™ื™ืช ืชื•ื›ื ื™ืช ื‘ื™ืฆื•ืข ืขื‘ื•ืจ ืฉืื™ืœืชืช SQL (ื ื™ื”ื•ืœ ืชื•ื›ื ื™ืช SQL);
  • ื ื•ืกืคื” ื”ืคืงื•ื“ื” next_row_id ื›ื“ื™ ืœืงื‘ืœ ืืช ื”ืžื–ื”ื” ืฉืœ ื”ืฉื•ืจื” ื”ื‘ืื”;
  • ื ื•ืกืคื• ืคื•ื ืงืฆื™ื•ืช ืžื•ื‘ื ื•ืช ื—ื“ืฉื•ืช JSON_QUOTE, JSON_ARRAY_APPEND, JSON_MERGE_PRESERVE, BENCHMARK ,COALESCE ื•-NAME_CONST.

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

ื”ื•ืกืคืช ืชื’ื•ื‘ื”