jaotatud andmebaasi vĂ€ljaanne , mille arendamisel on saanud inspiratsiooni Google'i tehnoloogiatest ja . TiDB kuulub hĂŒbriidsĂŒsteemide HTAP (HĂŒbriidne Tehingu/AnalĂŒĂŒtiline Töötlemine) kategooriasse, mis suudavad nii tagada reaalaja tehingute tĂ€itmist (OLTP) kui ka analĂŒĂŒtiliste pĂ€ringute töötlemist. Projekt on kirjutatud Go keeles ja lisensiga Apache 2.0.
TiDB omadused:
- SQL-i tugi ja kliendiliidese pakkumine, mis on ĂŒhilduv MySQL protokolliga, mis lihtsustab TiDB-s olemasolevate MySQL-ile kirjutatud rakenduste kohandamist ning vĂ”imaldab kasutada levinud klienditeeke. Lisaks MySQL protokollile saab andmebaasi juurde pÀÀseda ka JSON-pĂ”hise API ja Spark konnektori abil.
- SQL vĂ”imalustest on toetatud indeksid, agregaadifunktsioonid, GROUP BY, ORDER BY, DISTINCT, liidud (LEFT JOIN / RIGHT JOIN / CROSS JOIN), vaated, aknafunktsioonid ja alamkĂŒsitlused. Pakutavad vĂ”imalused on piisavad TiDB kasutamiseks veebirakendustes nagu PhpMyAdmin, ja WordPress;
- Horisontaalse skaleeritavuse ja tĂ”rkevaba töökindluse vĂ”imalus: salvestusruumi ja arvutusvĂ”imet saab suurendada lihtsalt uute sĂ”lmede lisamisega. Andmed jaotatakse sĂ”lmede vahel ĂŒleliigsuse pĂ”himĂ”ttel, mis vĂ”imaldab sĂŒsteemil jĂ€tkata tööd ĂŒksikute sĂ”lmede rikke korral. Rikete kĂ€sitlemine toimub automaatselt.
- SĂŒsteem garanteerib jĂ€rjepidevuse ning klienditarkvara jaoks nĂ€eb see vĂ€lja nagu ĂŒks suur andmebaas, hoolimata sellest, et tehingu tegemiseks kaasatakse andmed paljusid sĂ”lmi.
- FĂŒĂŒsiliste andmete salvestamiseks sĂ”lmedes vĂ”ivad kasutada erinevaid taustsĂŒsteeme, nĂ€iteks GoLevelDB ja BoltDB lokaalsed salvestusmootorid vĂ”i omaenda hajutatud salvestusmootor. .
- Schema salvestamise asĂŒnkroonse muutmise vĂ”imalus, mis vĂ”imaldab lisada veerge ja indekseid reaalajas ilma praeguste toimingute tĂ€itmist peatamata.
Peamised :
- On tehtud tööd jĂ”udluse suurendamiseks. Testis Sysbench versioon 3.0 ĂŒletab haru 2.1 1,5 korda select ja update operatsioonide tĂ€itmisel, ning testis TPC-C koguni 4,5 korda. Optimeerimised puudutasid erinevaid pĂ€ringute tĂŒĂŒpe, sealhulgas alampĂ€ringud "IN", "DO" ja "NOT EXISTS", tabelite ĂŒhendamise (JOIN) operatsioonid, indekseerimise kasutamine ja palju muud.
- Uus salvestusmootor TiFlash vĂ”imaldab saavutada kĂ”rgemat jĂ”udlust analĂŒĂŒtiliste ĂŒlesannete (OLAP) tĂ€itmisel, salvestades andmeid veergude jĂ€rgi. TiFlash tĂ€iendab varasemalt pakutud salvestust TiKV, mis salvestab andmeid ridade lĂ”ikes vĂ”tme/vÀÀrtuse formaadis ja on optimaalsem tehingute töötlemise (OLTP) ĂŒlesannete jaoks. TiFlash töötab koos TiKV-ga ning andmed jĂ€tkavad senist replikatsiooni TiKV-s, kasutades Rafti protokolli konsensuse mÀÀramiseks, kuid iga Rafti replikatsioonigruppi luuakse tĂ€iendav replikatsioon, mida kasutatakse TiFlashis. Selline lĂ€henemine vĂ”imaldab paremat ressursside jagamist OLTP ja OLAP ĂŒlesannete vahel ning muudab tehinguandmed koheselt kergesti kĂ€ttesaadavaks analĂŒĂŒtilistele pĂ€ringutele.
- Rakendatud on hajutatud prĂŒgikoristussĂŒsteem, mis vĂ”imaldab oluliselt kiirendada prĂŒgikoristust suurtes klastrites ja tĂ”sta töö stabiilsust.
- Lisatud on eksperimentaalne rakendus rollipĂ”hise juurdepÀÀsu haldamise sĂŒsteemist (RBAC). Samuti on tagatud vĂ”imalus seadistada juurdepÀÀsuĂ”igusi ANALYZE, USE, SET GLOBAL ja SHOW PROCESSLIST operatsioonide jaoks.
- Lisatud on vÔimalus kasutada SQL-i vÀljendeid aeglaste pÀringute logidest valimiseks.
- Rakendatud on kiire eemaldatud tabelite taastamise mehhanism, mis vÔimaldab taastada juhuslikult eemaldatud andmeid.
- Logide salvestamise formaat on unifitseeritud.
- Lisatud on pessimistliku lukustamisreĆŸiimi tugi, mis muudab tehingute töötlemise rohkem MySQL-i lĂ€hedaseks.
- Lisatud on kĂ”nede funktsioonide tugi (akna funktsioonid vĂ”i analĂŒĂŒtilised funktsioonid), mis on ĂŒhilduvad MySQL 8.0-ga. Akna funktsioonid vĂ”imaldavad igale pĂ€ringu reale teha arvutusi, kasutades teisi reale. Erinevalt agregaatfunktsioonidest, mis kuvavad rĂŒhmitatud ridade kogumi ĂŒhe reana, teevad akna funktsioonid agregatsiooni, tuginedes "akna" sisule, mis sisaldab ĂŒhte vĂ”i enamat rida tulemuste kogumist. Rakendatud akna funktsioonide hulka kuuluvad:
NTILE, LEAD, LAG, PERCENT_RANK, NTH_VALUE, CUME_DIST, FIRST_VALUE, LAST_VALUE, RANK, DENSE_RANK ja ROW_NUMBER; - Lisatud on eksperimentaalse toe toega vaadete (VIEW) rakendamine;
- Parandatud on sektsioonide (partitsioneerimise) sĂŒsteemi, lisatud vĂ”imalus andmete jaotamiseks sektsioonidesse vastavalt vÀÀrtuste vahemikule vĂ”i hash'idele;
- Lisatud on pluginate arendamise raamistik, nÀiteks on juba valmis pluginaid IP valge nimekirja kasutamiseks vÔi auditi logimise pidamiseks;
- Tagatud on eksperimentaalne toe tugi funktsioonile "EXPLAIN ANALYZE" SQL-pÀringu tÀitmisplaani koostamiseks (SQL Plan Management);
- Lisatud on kÀsk next_row_id jÀrgmise rea identifikaatori saamiseks;
- Lisatud on uued sisseehitatud funktsioonid JSON_QUOTE, JSON_ARRAY_APPEND, JSON_MERGE_PRESERVE, BENCHMARK, COALESCE ja NAME_CONST.
Allikas: opennet.ru
