TiDB 3.0 distribuerad DBMS-version

TillgÀngliga distribuerad DBMS-release TiDB3.0utvecklats under pÄverkan av Googles teknik Spanner О F1. TiDB tillhör kategorin hybrid HTAP-system (Hybrid Transactional/Analytical Processing) som kan bÄde tillhandahÄlla realtidstransaktioner (OLTP) och bearbeta analytiska frÄgor. Projektet Àr skrivet i Go och levererad av licensierad under Apache 2.0.

TiDB-funktioner:

  • Stöd för SQL och tillhandahĂ„llande av ett klientgrĂ€nssnitt som Ă€r kompatibelt med MySQL-protokollet, vilket gör det enkelt att anpassa befintliga applikationer skrivna för MySQL till TiDB, och Ă€ven lĂ„ter dig anvĂ€nda vanliga klientbibliotek. Förutom MySQL-protokollet kan du anvĂ€nda det JSON-baserade API:et och kontakten för Spark för att komma Ă„t DBMS.
  • Av funktionerna i SQL stöds index, aggregerade funktioner, GROUP BY, ORDER BY, DISTINCT uttryck, sammanslagningar (LEFT JOIN / RIGHT JOIN / CROSS JOIN), vyer, fönsterfunktioner och underfrĂ„gor. De tillhandahĂ„llna möjligheterna Ă€r tillrĂ€ckliga för att organisera arbetet med TiDB för sĂ„dana webbapplikationer som PhpMyAdmin, Gogs Đž WordPress;
  • Skalning och motstĂ„ndskraft: Lagrings- och processorkraft kan skalas upp helt enkelt genom att lĂ€gga till nya noder. Data distribueras över noder med redundans för att verksamheten ska kunna fortsĂ€tta om enskilda noder misslyckas. Fel hanteras automatiskt.
  • Systemet garanterar konsistens och ser ut som ett enda stort DBMS för klientprogramvaran, trots att data frĂ„n mĂ„nga noder faktiskt anvĂ€nds för att slutföra transaktionen.
  • Olika backends kan anvĂ€ndas för fysisk datalagring pĂ„ noder, till exempel lokala lagringsmotorer GoLevelDB och BoltDB eller en proprietĂ€r distribuerad lagringsmotor TiKV.
  • Möjligheten att asynkront Ă€ndra lagringsschemat, sĂ„ att du kan lĂ€gga till kolumner och index i farten utan att stoppa bearbetningen av pĂ„gĂ„ende operationer.

Den huvudsakliga innovationer:

  • Arbete har gjorts för att öka produktiviteten. I Sysbench-testet övertrĂ€ffar 3.0-versionen 2.1-grenen med 1.5 gĂ„nger i val och uppdateringsoperationer, och i TPC-C-testet med 4.5 gĂ„nger. Optimering har pĂ„verkat olika typer av frĂ„gor, inklusive "IN", "DO" och "NOT EXISTS" underfrĂ„gor, tabellsammanslagningsoperationer (JOIN), anvĂ€ndning av index och mer;
    TiDB 3.0 distribuerad DBMS-version TiDB 3.0 distribuerad DBMS-version
  • En ny lagringsmotor, TiFlash, har lagts till för att uppnĂ„ bĂ€ttre analytisk (OLAP) prestanda genom kolumnbunden lagring. TiFlash kompletterar den tidigare erbjudna TiKV-lagringen, som lagrar data i kontexten av rader i nyckel/vĂ€rde-format och Ă€r mer lĂ€mpad för transaktionsbehandlingsuppgifter (OLTP). TiFlash arbetar sida vid sida med TiKV och data fortsĂ€tter att replikeras till TiKV som tidigare genom att anvĂ€nda Raft-protokollet för att bestĂ€mma konsensus, men för varje grupp av Raft-repliker skapas och anvĂ€nds en extra replika i TiFlash. Ett sĂ„dant tillvĂ€gagĂ„ngssĂ€tt möjliggör en bĂ€ttre uppdelning av resurser mellan OLTP- och OLAP-uppgifter, och gör ocksĂ„ transaktionsdata omedelbart tillgĂ€nglig för analytiska frĂ„gor;

    TiDB 3.0 distribuerad DBMS-version
  • En distribuerad sophĂ€mtare har implementerats, vilket avsevĂ€rt kan öka hastigheten för sophĂ€mtning i stora kluster och förbĂ€ttra stabiliteten;
  • En experimentell implementering av det rollbaserade Ă„tkomstkontrollsystemet (RBAC) har lagts till. Det Ă€r ocksĂ„ möjligt att stĂ€lla in Ă„tkomstrĂ€ttigheter för operationerna ANALYSE, ANVÄND, SET GLOBAL och VISA PROCESSLISTA;
  • Lade till möjligheten att anvĂ€nda SQL-uttryck för att extrahera frĂ„n den lĂ„ngsamma frĂ„geloggen;
  • Implementerat en mekanism för snabb Ă„terstĂ€llning av raderade tabeller, sĂ„ att du kan Ă„terstĂ€lla oavsiktligt raderade data;
  • Enhetligt format för inspelade loggar;
  • Tillagt stöd för pessimistiskt lĂ„slĂ€ge, vilket gör transaktionsbearbetningen nĂ€rmare MySQL;
  • Tillagt stöd för fönsterfunktioner (fönsterfunktioner eller analytiska funktioner) kompatibla med MySQL 8.0. Fönsterfunktioner gör det möjligt för varje rad i en frĂ„ga att utföra berĂ€kningar med andra rader. Till skillnad frĂ„n aggregerade funktioner, som kollapsar en grupperad uppsĂ€ttning rader till en enda rad, aggregeras fönsterfunktioner baserat pĂ„ innehĂ„llet i ett "fönster" som inkluderar en eller flera rader frĂ„n resultatuppsĂ€ttningen. Bland de implementerade fönsterfunktionerna:
    NTILE, LEAD, LAG, PERCENT_RANK, NTH_VALUE, CUME_DIST, FIRST_VALUE , LAST_VALUE, RANK, DENSE_RANK och ROW_NUMBER;
  • Lade till experimentellt stöd för vyer (VIEW);
  • FörbĂ€ttrat partitioneringssystem (partitionering), lade till möjligheten att distribuera data i sektioner baserat pĂ„ en rad vĂ€rden eller hash;
  • Lade till ett ramverk för pluginutveckling, till exempel har plugins redan förberetts för att anvĂ€nda IP-vitlistan eller revisionsloggning;
  • Tillhandahöll experimentellt stöd för funktionen "EXPLAIN ANALYZE" för att bygga en SQL-förfrĂ„gningsplan (SQL Plan Management);
  • Lade till kommandot next_row_id för att fĂ„ nĂ€sta rad-id;
  • Lade till nya inbyggda funktioner JSON_QUOTE, JSON_ARRAY_APPEND, JSON_MERGE_PRESERVE, BENCHMARK ,COALESCE och NAME_CONST.

KĂ€lla: opennet.ru

Köp pĂ„litlig hosting för webbplatser med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster