sql >> Databasteknik >  >> RDS >> MariaDB

Vad är nytt i MariaDB 10.6

Från och med januari 2022 introducerade ClusterControl v1.9.2 stöd för den senaste versionen av MariaDB — version 10.6. MariaDB 10.6, som släpptes i juli 2021, kommer att stödjas under de kommande fyra åren eller exakt fram till juli 2026.

I det här inlägget kommer vi att lyfta fram de främsta funktionerna i MariaDB 10.6.

Atomic DDL (Data Definition Language)

Den första funktionen vi kommer att täcka är Atomic DDL. Per definition betyder "atomic" antingen operationen är framgångsrik och loggas till de binära loggarna, eller så är den helt omvänd. Från och med MariaDB 10.6.1 har MariaDB förbättrat DDL:s operations läsbarhet genom att göra de flesta av dem atomiska medan resten är kraschsäkra, även om servern kraschar när någon operation utförs. Både Atomic och Crash-safe har utvecklats för att fungera med alla lagringsmotorer, förutom S3-lagringsmotorn och partitioneringsmotorn, som fortfarande pågår.

I den här versionen är ALTER TABLE, RENAME TABLE, CREATE TABLE, DROP TABLE, DROP DATABASE och deras relaterade DDL-satser nu atomära redo. Den fullständiga listan över andra Atomic DDL-operationer finns här. Det fantastiska med den nya atomära och kraschsäkra implementeringen är att MariaDB-servern har blivit mycket mer stabil, för att inte tala om tillförlitlig, även i instabila miljöer.

SQL-syntax

När det gäller SQL-syntaxkategorin har några nya funktioner lagts till. Den första som vi kommer att se är:

VÄLJ ... OFFSET ... HÄMTA

OFFSET-satsen tillåter oss att returnera bara de segment av en resultatuppsättning som kommer efter en definierad offset. Å andra sidan begränsar FETCH-satsen antalet rader som ska returneras. Oavsett om det är en singular ROW eller plural ROWS, kan båda användas efter OFFSET- och FETCH-satserna eftersom de inte har någon inverkan på resultaten.

HOPPNING LÅST

Kanske är några av oss bekanta med denna syntax eftersom den har importerats och anpassats från MySQL. Med SKIP LOCKED kan vi hoppa över alla låsta RADER när vi utför SELECT- eller UPDATE-operationer. Det är definitivt en användbar funktion, särskilt för applikationer som låter flera användare boka begränsade resurser som hotellrum, flygstolar, konsertbiljetter etc. 

Ignorerade index

Ignorerade index liknar funktionen "osynliga index" i MySQL 8. Alla index som är synliga och underhålls men som inte används av optimeraren kan definieras som Ignorerade index. Detta kan vara mycket användbart när vi testar för att se vad som dyker upp om vi tappar ett index innan vi verkligen tappar det. Om något problem uppstår kan vi aktivera det igen omedelbart (genom att markera indexet IGNERAD/NOT IGNORERAD).

JSON_TABLE

Denna tabellfunktion är också importerad från MySQL, där den kan omvandla JSON-data eller dokument till en relationsform. I den här versionen aktiverade MariaDB en tabellvy i JSON-data lagrad i MariaDB-databasen, och genom att använda SQL kommer alla frågor att returneras som en vanlig tabell.

Oracle-kompatibilitet

MariaDB var pionjären inom databasvärlden med öppen källkod som lade till PL/SQL-kompatibilitet. Från och med MariaDB 10.3 har många syntaxer och funktioner lagts till för att underlätta migreringen från Oracle till MariaDB. När det gäller MariaDB 10.6 är följande funktioner introducerade för att göra MariaDB mer PL/SQL-kompatibel:

  • Anonyma underfrågor i en FROM-sats (ingen AS-sats) är tillåtna i ORACLE-läge

  • ADD_MONTHS() har lagts till 

    • funktion för att lägga till/subtrahera månader från ett givet datumvärde.

  • TO_CHAR() har lagts till

    • stödjer NUMBER, DATE, DATETIME, TIMESTAMP, etc. som parametrar och returnerar ett formaterat/konverterat TEXT-värde

  • SYS_GUID() har lagts till 

    • liknar UUID-funktionen i MariaDB

  • MINUS är mappad till UTOM i UNION 

  • ROWNUM-funktionen returnerar det aktuella antalet accepterade rader i den aktuella kontexten 

Replikering, Galera och Binlog

I den här kategorin har MariaDB introducerat binlog_expire_logs_seconds som en form av alias för expire_logs_days, vilket innebär att alla ändringar av någon av dem automatiskt kommer att återspeglas i den andra. Dessutom accepterar binlog_expire_logs_seconds en precision på 1/1000000 dagar. Detta är exceptionellt användbart vid skrivningar med stora volymer på master och när miljön har begränsat diskutrymme.

Utöver det introducerade MariaDB också wsrep_mode systemvariabler. Denna variabel aktiverar WSREP-funktioner som inte är en del av standardbeteendet som BINLOG_ROW_FORMAT_ONLY, DISALLOW_LOCAL_GTID, REQUIRED_PRIMARY_KEY, REPLICATE_ARIA, REPLICATE_MYISAM, STRICT_REPLICATION.

Sys Schema

Nästa funktion är sys_schema, en samling vyer, funktioner och procedurer. Det råder ingen tvekan om att sys_schema hjälper DBA:er och utvecklare på många sätt när de tolkar data; mycket information och diagnostisk information kan samlas in från den. sys_schema används inte bara för att felsöka prestandaproblem utan hjälper också till att hantera resurserna effektivt. Tack och lov är detta nu tillgängligt i MariaDB 10.6.

Informationsschema

Den nyligen tillagda funktionen i denna kategori är INFORMATION_SCHEMA.KEYWORDS och INFORMATION_SCHEMA.SQL_FUNCTIONS. KEYWORDS-tabellen innehåller cirka 694 rader med MariaDB-nyckelord, medan SQL_FUNCTIONS-tabellen innehåller cirka 234 rader med MariaDB-funktioner. Med dessa två tabeller kan vi nu få informationsschemat relaterat till dem om vi behöver det.

Avsluta

Utöver dessa nya funktioner som introducerades i MariaDB 10.6, gjordes många andra förbättringar som inte diskuterades i det här inlägget. Även om många av dessa funktioner togs från MySQL, är dessa tillägg fortfarande mycket fördelaktiga för användarna.

Som tidigare nämnts stöder ClusterControl för närvarande MariaDB 10.6. Med ClusterControl kan du enkelt uppgradera till den senaste teknikversionen utan stress. Om du ännu inte är bekant med ClusterControl kan du utvärdera det gratis i 30 dagar - ingen CC krävs.

För att hålla dig uppdaterad med alla de senaste nyheterna och bästa praxis för de mest populära databaserna med öppen källkod, glöm inte att följa oss på Twitter och LinkedIn och prenumerera på vårt nyhetsbrev för uppdateringar.


  1. Java - hitta den första orsaken till ett undantag

  2. Jämför Oracle MySQL, Percona Server och MariaDB

  3. SQL Server Databas Objects Statistik

  4. MySQL datetime-fält och sommartid -- hur refererar jag till den extra timmen?