Kutulutsidwa kwa DBMS TiDB 3.0

Ipezeka kutulutsidwa kwa DBMS yogawidwa TiDB 3.0, yopangidwa mothandizidwa ndi matekinoloje a Google Uzani ΠΈ F1. TiDB ili m'gulu la makina osakanikirana a HTAP (Hybrid Transactional/Analytical Processing), omwe amatha kupereka zochitika zenizeni (OLTP) ndikuyankha mafunso owunika. Ntchitoyi imalembedwa m'chinenero cha Go ndi wogawidwa ndi zololedwa pansi pa Apache 2.0.

Mawonekedwe a TiDB:

  • Thandizo la SQL ndikupereka mawonekedwe a kasitomala omwe amagwirizana ndi protocol ya MySQL, yomwe imathandizira kusintha kwa mapulogalamu omwe alipo omwe adalembedwera MySQL kupita ku TiDB, komanso amalola kugwiritsa ntchito malaibulale wamba wamakasitomala. Kuphatikiza pa protocol ya MySQL, mutha kugwiritsa ntchito API yochokera ku JSON ndi cholumikizira cha Spark kuti mupeze DBMS.
  • SQL imathandizira ma index, ntchito zophatikizika, GROUP BY, ORDER BY, DIISTINCT mawu, kuphatikiza (LEFT JOIN / RIGHT JOIN / CROSS JOIN), mawonedwe, ntchito zazenera ndi ma subqueries. Mphamvu zomwe zaperekedwa ndizokwanira kukonza ntchito ndi TiDB pazogwiritsa ntchito intaneti monga PhpMyAdmin, Agogo ndi WordPress;
  • Kukhazikika kokhazikika komanso kulolerana kolakwika: kukula kosungirako ndi mphamvu zopangira zitha kukulitsidwa mwa kungolumikiza ma node atsopano. Deta imagawidwa m'malo onse ndi redundancy, kulola kuti ntchito ipitirire ngati node za munthu aliyense zikulephera. Zolephera zimangochitika zokha.
  • Dongosololi limatsimikizira kusasinthika komanso pulogalamu yamakasitomala ikuwoneka ngati DBMS imodzi yayikulu, ngakhale kuti kwenikweni, deta yochokera ku node zambiri imakopeka kuti amalize ntchitoyo.
  • Для физичСского хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΡƒΠ·Π»Π°Ρ… ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Ρ€Π°Π·Π½Ρ‹Π΅ бэкСнды, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π²ΠΈΠΆΠΊΠΈ хранСния GoLevelDB ΠΈ BoltDB ΠΈΠ»ΠΈ собствСнный Π΄Π²ΠΈΠΆΠΎΠΊ распрСдСлённого Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° TiKV.
  • Kutha kusintha mosinthika schema yosungirako, kukulolani kuti muwonjezere mizati ndi ma index pa ntchentche popanda kuletsa kukonza ntchito zomwe zikuchitika.

waukulu zatsopano:

  • ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π’ тСстС Sysbench выпуск 3.0 ΠΎΠΏΠ΅Ρ€Π΅ΠΆΠ°Π΅Ρ‚ Π²Π΅Ρ‚ΠΊΡƒ 2.1 Π² 1.5 Ρ€Π°Π·Π° ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ select ΠΈ update, Π° Π² тСстС TPC-C Π² 4.5 Ρ€Π°Π·Π°. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΠ»ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²ΠΈΠ΄Ρ‹ запросов, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ подзапросы Β«INΒ», Β«DOΒ» ΠΈ Β«NOT EXISTSΒ», ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ слияния Ρ‚Π°Π±Π»ΠΈΡ† (JOIN), использованиС индСксов ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅;
    Kutulutsidwa kwa DBMS TiDB 3.0Kutulutsidwa kwa DBMS TiDB 3.0

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ хранСния TiFlash, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π±ΠΎΠ»Π΅Π΅ высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ аналитичСских Π·Π°Π΄Π°Ρ‡ (OLAP), благодаря Ρ…Ρ€Π°Π½Π΅Π½ΠΈΡŽ Π² привязкС ΠΊ столбцам. TiFlash дополняСт собой Ρ€Π°Π½Π΅Π΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ TiKV, хранящСС Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ€Π°Π·Ρ€Π΅Π·Π΅ строк Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΊΠ»ΡŽΡ‡/Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ€ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ для Π·Π°Π΄Π°Ρ‡ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ (OLTP). TiFlash Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π±ΠΎΠΊ ΠΎ Π±ΠΎΠΊ с TiKV ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ ΠΊΠ°ΠΊ ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅ Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² TiKV с использоаниСм ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Raft для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ консСнсуса, Π½ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ Ρ€Π΅ΠΏΠ»ΠΈΠΊ Raft создаётся Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² TiFlash. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΠΎΡ…ΠΎΠ΄ позволяСт Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ раздСлСния рСсурсов ΠΌΠ΅ΠΆΠ΄Ρƒ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ OLTP ΠΈ OLAP, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π΅Π»Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ доступными для аналитичСских запросов;

    Kutulutsidwa kwa DBMS TiDB 3.0

  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ распрСдСлённый сборщик мусора, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ сущСствСнно ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ сборки мусора Π² ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… кластСрах ΠΈ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ рСализация систСмы разграничСния доступа Π½Π° основС Ρ€ΠΎΠ»Π΅ΠΉ (RBAC). Π’Π°ΠΊΠΆΠ΅ обСспСчСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ задания ΠΏΡ€Π°Π² доступа для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ANALYZE, USE, SET GLOBAL ΠΈ SHOW PROCESSLIST;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ SQL для Π²Ρ‹Π±Π»Ρ€ΠΊΠΈ ΠΈΠ· Π»ΠΎΠ³Π° ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Ρ… запросов;
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ быстрого восстановлСния ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ случайно ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅;
  • Π£Π½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ записываСмых Π»ΠΎΠ³ΠΎΠ²;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° пСссимистичСского Ρ€Π΅ΠΆΠΈΠΌΠ° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π±ΠΎΠ»Π΅Π΅ Π±Π»ΠΈΠ·ΠΊΠΎΠΉ ΠΊ MySQL;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠΊΠΎΠ½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (window-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ аналитичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ), совмСстимых с MySQL 8.0. ΠžΠΊΠΎΠ½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки запроса Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ вычислСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ строки. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π°Π³Ρ€Π΅Π³Π°Ρ‚Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°ΡŽΡ‚ сгруппированный Π½Π°Π±ΠΎΡ€ строк Π² ΠΎΠ΄Π½Ρƒ строку, ΠΎΠΊΠΎΠ½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ производят Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° основС содСрТимого Β«ΠΎΠΊΠ½Π°Β», Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ΄Π½Ρƒ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ строк ΠΈΠ· Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ Π½Π°Π±ΠΎΡ€Π°. Π‘Ρ€Π΅Π΄ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΎΠΊΠΎΠ½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:
    NTILE, LEAD, LAG, PERCENT_RANK, NTH_VALUE, CUME_DIST, FIRST_VALUE , LAST_VALUE, RANK, DENSE_RANK ΠΈ ROW_NUMBER;

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° прСдставлСний (VIEW);
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° систСма сСкционирования (партицирования), Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ распрСдСлСния Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎ сСкциям Π½Π° основании Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Ρ…ΡΡˆΠ΅ΠΉ;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡƒΠΆΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Ρ‹ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ для использования Π±Π΅Π»ΠΎΠ³ΠΎ списка IP ΠΈΠ»ΠΈ вСдСния Π»ΠΎΠ³Π° Π°ΡƒΠ΄ΠΈΡ‚Π°;
  • ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½Π° ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Β«EXPLAIN ANALYZEΒ» для построСния ΠΏΠ»Π°Π½Π° выполнСния SQL-запроса (SQL Plan Management);
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° next_row_id для получСния ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строки;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ JSON_QUOTE, JSON_ARRAY_APPEND, JSON_MERGE_PRESERVE, BENCHMARK ,COALESCE ΠΈ NAME_CONST.

Source: opennet.ru

Kuwonjezera ndemanga