sql >> Databáze >  >> RDS >> MariaDB

Co je nového v MariaDB 10.4

MariaDB 10.4 je aktuální vývojová větev MariaDB. Nedávno, 21. května, vyšel třetí Release Candidate (10.4.5), který nás přibližuje k oficiálnímu vydání. Proto jsme si řekli, že by mohl být dobrý nápad podívat se na nové funkce 10.4. Také se podělíme o některé myšlenky v nedávném příspěvku na blogu vydaném společností MariaDB Corporation. Pro informace o samotném vydání najdete všechny podrobnosti v changelogu MariaDB 10.4.0.

Změny výkonu

Znakové sady Unicode jsou obvykle pomalejší než znakové sady jako latin1, většinou kvůli jejich velikosti. MySQL 8.0 přinesla v této oblasti výrazná vylepšení a MariaDB 10.4 by v tomto ohledu měla být také znatelně rychlejší než 10.3. Je to docela důležité vylepšení – lidé opravdu rádi používají emotikony, které vyžadují povolení UTF8. V optimalizátoru byla provedena určitá práce – MariaDB 10.4 by měla fungovat lépe pro poddotazy IN(), protože je nyní možné vkládat podmínky do materializovaných poddotazů.

Spuštění a zastavení InnoDB může chvíli trvat, v závislosti na množství dat v redo logech. MariaDB 10.4 zlepší spouštění, vypínání a čištění. Taková vylepšení jsou zvláště důležitá vzhledem k popularitě horkých zálohovacích nástrojů, jako je mariabackup a xtrabackup. Tyto nástroje nakonec projdou procesem spouštění InnoDB od nečistého vypnutí, když použijí redo logs, takže každé vylepšení v této oblasti by mělo zkrátit čas potřebný k obnově záloh.

Změny InnoDB

MariaDB 10.4 obdržela okamžitou operaci DROP COLUMN. Nyní je také možné změnit pořadí sloupců v tabulce bez nutnosti přestavby. Nemůžeme zdůraznit, jak je to důležité. Možná se ptáte, jaké jsou nejčastější operace, které děláte v produkčním prostředí? Řekli bychom, že jde o přidání nebo odebrání indexu. Další nejběžnější operací by byly operace se sloupci – přidání nového sloupce a odstranění stávajícího sloupce. Dosud nejběžnějším přístupem bylo použití externích nástrojů k provedení práce:pt-online-schema-change nebo v poslední době gh-ost. Oba mají svá omezení (například gh-ost nefunguje pro Galera Cluster), což může znemožnit jejich použití ve vašem systému. Obzvláště ošemetné jsou cizí klíče. S okamžitým DROP COLUMN (okamžité ADD COLUMN je již k dispozici) lze velkou část změn schématu provádět ad hoc, bez podrobného plánování a plánování, jak je třeba udělat nyní. Je důležité mít na paměti, že okamžité změny jsou to, co chceme mít. Existují neblokující změny schématu, jako je vytvoření indexu, ale takové operace představují vážné problémy při použití replikace, protože způsobují zpoždění replikace. I když tedy operace mohla být provedena na živém systému, dáváme přednost použití zástupných řešení, jako je pt-online-schema-change, abychom měli nad procesem lepší kontrolu.

Toto není jediné vylepšení způsobu provádění změn schématu. MariaDB 10.4 bude těžit z rychlejšího rozšíření sloupců VARCHAR, navíc změny znakové sady a řazení u neindexovaných sloupců budou okamžité.

Obecné změny

Jednou z největších změn jsou změny ve správě uživatelů. Tabulka Mysql.host nebude vytvořena, tabulka mysql.user je zastaralá. Uživatelské účty a globální oprávnění budou zachovány v tabulce mysql.global_priv. Toto je potenciálně vážná změna pro všechny nástroje (včetně ClusterControl), které mají možnost spravovat uživatele MySQL a MariaDB – budou muset být napsány nové případy, které pokrývají správu uživatelů v MariaDB 10.4 a novějších. I když uznáváme, že změny jsou nutné, rozhodně to nepomáhá udržovat nástroje pro MariaDB i MySQL, takže prostředí nástrojů je ještě více rozdělené, než už je. Když už mluvíme o uživatelích, MariaDB 10.4 přichází s možností vypršení platnosti uživatelského hesla. To je rozhodně krok dobrým směrem – pomáhá to prosazovat osvědčené postupy týkající se správy hesel.

I když se tomu budeme podrobněji věnovat v samostatném blogu, musíme zde zmínit podporu pro Galera 26.4 – MariaDB 10.4 bude těžit z nové verze Galera s funkcemi, jako je replikace streamování nebo vylepšené SST díky zámkům zálohování.

Nakonec v MariaDB 10.4 můžete nastavit sql_mode=MSSQL. Toto je počáteční implementace, ale sql_mode=ORACLE byla také počáteční implementace v určitém okamžiku. To ukazuje zaměření MariaDB na podnikové zákazníky – pokud se zákazníci Oracle rozhodnou migrovat, je docela pravděpodobné, že přijetí MariaDB mezi Microsoft SQL Server také poroste, protože budou přidány další funkce a migrace bude menším problémem.

MariaDB je vidlička

Poměrně nedávno jsme viděli blogový příspěvek vysvětlující postoj MariaDB ke změnám a kompatibilitě InnoDB. Podstatou je, že MariaDB již nebude spojovat funkce InnoDB z MySQL, důraz bude kladen na zlepšení stability a výkonu, které MariaDB provádí. To v podstatě znamená, že MariaDB bude nekompatibilní s MySQL. I kdybyste mohli binární upgrade provést v minulosti, v budoucnu to nebude možné. Dokonce i nyní může být obtížné provést. To zvyšuje důležitost nástrojů jako mydumper/myloader, protože logická záloha bude jediným způsobem migrace. Co je dobré, MariaDB bude moci vlastnit stabilitu jejich forku InnoDB – nebudou se muset potýkat s problémy zavedenými upstream vývojáři, takže můžeme očekávat méně zaváděných chyb.

Z hlediska výkonu si musíme počkat na benchmarky, ale vzhledem k historickým datům můžeme předpokládat, že MariaDB bude pomalejší než MySQL. V minulých srovnávacích testech obvykle vidíme, že zvýšení výkonu pro MariaDB se projeví, když byla integrována novější verze InnoDB. To již nebude tento případ, což nás nutí přemýšlet, jak si MariaDB povede ve srovnání výkonu od nynějška a zda vylepšení představená MariaDB budou stačit k udržení kroku s MySQL 8.0 a dalšími verzemi.

Pro nás uživatele to vše znamená, že MariaDB 10.4 by měla být stabilnější než předchozí verze. Znamená to také, že se nakonec budeme muset naučit vnitřnosti dvou různých úložných enginů – zvláště pokud nám záleží na výkonu. Není to zdaleka ideální, ale je to tak. Nástroje budou muset být navrženy tak, aby fungovaly s jednou nebo druhou verzí InnoDB (nebo bude muset být přidána další práce pro podporu MySQL i MariaDB). Budeme sledovat, jak se to bude vyvíjet. Když se nad tím zamyslíte, není to až tak překvapivý krok – MariaDB si vždy musela dát čas na integraci s novější verzí InnoDB. Vzhledem k tomu, že se do MariaDB přidává stále více nekompatibilních funkcí a obrovské změny zaváděné v MySQL 8.0, dává smysl zaměřit se na vývoj nových funkcí spíše než na portování nekompatibilního InnoDB z upstream MySQL.

Doufáme, že vám tento krátký příspěvek na blogu poskytl přehled o změnách, které zasáhnou produkční systémy při přechodu na MariaDB 10.4.


  1. Operátor Oracle (+).

  2. Je možné použít `SqlDbType.Structured` k předání parametrů s hodnotou tabulky v NHibernate?

  3. Jak ClusterControl konfiguruje virtuální IP a co lze očekávat při převzetí služeb při selhání

  4. 3 způsoby, jak oddělit rok, měsíc a den od data v MariaDB