sql >> Database teknologi >  >> RDS >> MariaDB

Hvad er nyt i MariaDB 10.6

Fra januar 2022 introducerede ClusterControl v1.9.2 understøttelse af den seneste version af MariaDB — version 10.6. MariaDB 10.6, udgivet i juli 2021, vil blive understøttet i de næste fire år eller præcis indtil juli 2026.

I dette indlæg vil vi fremhæve de vigtigste funktioner i MariaDB 10.6.

Atomic DDL (Data Definition Language)

Den første funktion, vi vil dække, er Atomic DDL. Per definition betyder "atomic" enten operationen er vellykket og logget til de binære logfiler, eller den er fuldstændig omvendt. Fra og med MariaDB 10.6.1 har MariaDB forbedret DDL's operations læsbarhed ved at gøre de fleste af dem atomiske, mens resten er crash-sikre, selvom serveren går ned, mens den udfører en operation. Både Atomic og Crash-safe blev udviklet til at fungere med alle lagringsmotorer, undtagen S3-lagringsmotoren og partitioneringsmotoren, som stadig er i gang.

I denne version er ALTER TABLE, RENAME TABLE, CREATE TABLE, DROP TABLE, DROP DATABASE og deres relaterede DDL-sætninger nu atomare klar. Den komplette liste over andre Atomic DDL-operationer kan findes her. Det fantastiske ved den nye atomare og nedbrudssikre implementering er, at MariaDB-serveren er blevet meget mere stabil, for ikke at nævne pålidelig, selv i ustabile miljøer.

SQL-syntaks

Med hensyn til SQL Syntax-kategorien blev der tilføjet et par nye funktioner. Den første, vi skal se, er:

VÆLG ... OFFSET ... FETCH

OFFSET-klausulen vil tillade os at returnere kun de segmenter af et resultatsæt, der ankommer efter en defineret offset. På den anden side begrænser FETCH-sætningen antallet af rækker, der skal returneres. Uanset om det er en ental ROW eller flertal ROWS, kan begge bruges efter OFFSET- og FETCH-sætningerne, da de ikke har nogen indflydelse på resultaterne.

SKIP LÅST

Måske er nogle af os bekendt med denne syntaks, da den er blevet importeret og tilpasset fra MySQL. Med SKIP LOCKED kunne vi springe alle låste RÆkker over, når vi udfører SELECT- eller UPDATE-handlinger. Det er bestemt en nyttig funktion, især for applikationer, der lader flere brugere booke begrænsede ressourcer som hotelværelser, flysæder, koncertbilletter osv. 

Ignorerede indekser

Ignorerede indekser ligner funktionen "usynlige indekser" i MySQL 8. Alle indekser, der er synlige og vedligeholdes, men ikke bruges af optimeringsværktøjet, kan defineres som Ignorerede indekser. Dette kan være meget nyttigt, når vi tester for at se, hvilke overflader, hvis vi dropper et indeks, før vi faktisk dropper det. Hvis der skulle opstå et problem, kunne vi aktivere det igen med det samme (ved at markere indekset IGNORERET/IKKE IGNORERET).

JSON_TABLE

Denne tabelfunktion er også importeret fra MySQL, hvor den kunne transformere JSON-data eller dokumenter til en relationsform. I denne version aktiverede MariaDB en tabelvisning i JSON-data gemt i MariaDB-databasen, og ved at bruge SQL vil alle forespørgsler blive returneret som en almindelig tabel.

Oracle-kompatibilitet

MariaDB var pioneren i open source-databaseverdenen, der tilføjede PL/SQL-kompatibilitet. Fra og med MariaDB 10.3 er der tilføjet mange syntakser og funktioner for at lette migreringen fra Oracle til MariaDB. Hvad angår MariaDB 10.6, er følgende funktioner introduceret for at gøre MariaDB mere PL/SQL-kompatibel:

  • Anonyme underforespørgsler i en FROM-klausul (ingen AS-klausul) er tilladt i ORACLE-tilstand

  • ADD_MONTHS() tilføjet 

    • funktion til at tilføje/fratrække måneder fra en given datoværdi.

  • TO_CHAR() tilføjet

    • understøtter NUMBER, DATE, DATETIME, TIMESTAMP osv. som parametre og returnerer en formateret/konverteret TEXT-værdi

  • SYS_GUID() tilføjet 

    • ligner UUID-funktionen i MariaDB

  • MINUS er kortlagt til UNDTAGET i UNION 

  • ROWNUM-funktionen returnerer det aktuelle antal accepterede rækker i den aktuelle kontekst 

Replikering, Galera og Binlog

I denne kategori har MariaDB introduceret binlog_expire_logs_seconds som en form for alias for expire_logs_days, hvilket betyder, at enhver ændring af nogen af ​​dem automatisk vil blive afspejlet i den anden. Desuden accepterer binlog_expire_logs_seconds en præcision på 1/1000000 dage. Dette er usædvanligt nyttigt ved skrivning af store volumer på master, og når miljøet har begrænset diskplads.

Ud over det introducerede MariaDB også wsrep_mode systemvariabler. Denne variabel aktiverer WSREP-funktioner, der ikke er en del af standardadfærden, såsom BINLOG_ROW_FORMAT_ONLY, DISALLOW_LOCAL_GTID, REQUIRED_PRIMARY_KEY, REPLICATE_ARIA, REPLICATE_MYISAM, STRICT_REPLICATION.

Sys-skema

Den næste funktion er sys_schema, en samling af visninger, funktioner og procedurer. Der er ingen tvivl om, at sys_schema hjælper DBA'er og udviklere på mange måder, mens de tolker data; der kunne indsamles en masse information og diagnostisk information. sys_schema bruges ikke kun til fejlfinding af ydeevneproblemer, men hjælper også med at administrere ressourcerne effektivt. Heldigvis er dette nu tilgængeligt i MariaDB 10.6.

Informationsskema

Den nyligt tilføjede funktion i denne kategori er INFORMATION_SCHEMA.KEYWORDS og INFORMATION_SCHEMA.SQL_FUNCTIONS. KEYWORDS-tabellen indeholder omkring 694 rækker af MariaDB-nøgleord, mens SQL_FUNCTIONS-tabellen indeholder omkring 234 rækker af MariaDB-funktioner. Med disse to tabeller kan vi nu få informationsskemaet relateret til dem, hvis vi har brug for det.

Afslutning

Ud over disse nye funktioner introduceret i MariaDB 10.6, blev der lavet mange andre forbedringer, som ikke blev diskuteret i dette indlæg. Selvom mange af disse funktioner blev hentet fra MySQL, er disse tilføjelser stadig yderst gavnlige for brugerne.

Som tidligere nævnt understøtter ClusterControl i øjeblikket MariaDB 10.6. Med ClusterControl kan du nemt opgradere til den nyeste teknologiversion uden stress. Hvis du endnu ikke er bekendt med ClusterControl, kan du evaluere det gratis i 30 dage - ingen CC påkrævet.

For at holde dig opdateret med alle de seneste nyheder og bedste praksis for de mest populære open source-databaser, glem ikke at følge os på Twitter og LinkedIn og abonnere på vores nyhedsbrev for opdateringer.


  1. Integrering af ServiceNow med Oracle Identity Cloud Service (IDCS)

  2. Forståelse af SQL Server Always Encrypted

  3. Oracle SQL Developer og PostgreSQL

  4. Hvordan laver jeg databasetransaktioner med psycopg2/python db api?