sql >> Database >  >> RDS >> MariaDB

Wat is er nieuw in MariaDB 10.6

Vanaf januari 2022 introduceerde ClusterControl v1.9.2 ondersteuning voor de nieuwste versie van MariaDB — versie 10.6. MariaDB 10.6, uitgebracht in juli 2021, wordt de komende vier jaar of precies tot juli 2026 ondersteund.

In dit bericht zullen we de belangrijkste functies van MariaDB 10.6 belichten.

Atomic DDL (Data Definition Language)

De eerste functie die we zullen behandelen is Atomic DDL. Per definitie betekent "atomair" ofwel dat de bewerking succesvol is en wordt vastgelegd in de binaire logboeken, of dat deze volledig is omgekeerd. Vanaf MariaDB 10.6.1 heeft MariaDB de leesbaarheid van de DDL-bewerkingen verbeterd door de meeste atomair te maken, terwijl de rest crashveilig is, zelfs als de server crasht tijdens het uitvoeren van een bewerking. Zowel Atomic als Crash-safe zijn ontwikkeld om met alle storage-engines te werken, behalve de S3- storage-engine en partitioning-engine, waar nog aan gewerkt wordt.

In deze versie zijn ALTER TABLE, RENAME TABLE, CREATE TABLE, DROP TABLE, DROP DATABASE en hun gerelateerde DDL-statements nu atomair klaar. De volledige lijst met andere Atomic DDL-bewerkingen vindt u hier. Het mooie van de nieuwe atomaire en crashveilige implementatie is dat de MariaDB-server veel stabieler en zelfs betrouwbaarder is geworden, zelfs in onstabiele omgevingen.

SQL-syntaxis

In termen van de categorie SQL-syntaxis zijn er een paar nieuwe functies toegevoegd. De eerste die we gaan zien is:

SELECTEER ... OFFSET ... FETCH

Met de OFFSET-clausule kunnen we alleen die segmenten van een resultatenset retourneren die na een gedefinieerde offset aankomen. Aan de andere kant beperkt de FETCH-clausule het aantal rijen dat moet worden geretourneerd. Of het nu een enkelvoudige RIJ of meervoudige RIJEN is, beide kunnen worden gebruikt na de OFFSET- en FETCH-clausules omdat ze geen invloed hebben op de resultaten.

SKIP VERGRENDELD

Misschien zijn sommigen van ons bekend met deze syntaxis, aangezien deze is geïmporteerd en aangepast vanuit MySQL. Met SKIP LOCKED kunnen we alle vergrendelde RIJEN overslaan bij het uitvoeren van SELECT- of UPDATE-bewerkingen. Het is zeker een handige functie, vooral voor applicaties waarmee meerdere gebruikers beperkte middelen kunnen boeken, zoals hotelkamers, vliegtickets, concerttickets, enz. 

Genegeerde indexen

Genegeerde indexen is vergelijkbaar met de functie "onzichtbare indexen" in MySQL 8. Alle indexen die zichtbaar zijn en worden onderhouden, maar niet worden gebruikt door de optimizer, kunnen worden gedefinieerd als genegeerde indexen. Dit kan erg handig zijn bij het testen om te zien wat er naar boven komt als we een index laten vallen voordat we deze inderdaad laten vallen. Als er een probleem optreedt, kunnen we het onmiddellijk weer inschakelen (door de index IGNORED/NOT IGNORED te markeren).

JSON_TABLE

Deze tabelfunctie wordt ook geïmporteerd uit MySQL, waar het JSON-gegevens of -documenten in een relationele vorm kan omzetten. In deze versie maakte MariaDB een tabelweergave mogelijk van JSON-gegevens die zijn opgeslagen in de MariaDB-database, en door SQL te gebruiken, worden alle query's geretourneerd als een gewone tabel.

Oracle-compatibiliteit

MariaDB was de pionier in de open-source databasewereld die PL/SQL-compatibiliteit toevoegde. Vanaf MariaDB 10.3 zijn er veel syntaxis en functies toegevoegd om de migratie van Oracle naar MariaDB te vergemakkelijken. Wat MariaDB 10.6 betreft, zijn de volgende functies geïntroduceerd om MariaDB meer PL/SQL-compatibel te maken:

  • Anonieme subquery's in een FROM-clausule (geen AS-clausule) zijn toegestaan ​​in de ORACLE-modus

  • ADD_MONTHS() toegevoegd 

    • functie om maanden toe te voegen aan/af te trekken van een bepaalde datumwaarde.

  • TO_CHAR() toegevoegd

    • ondersteunt NUMBER, DATE, DATETIME, TIMESTAMP, etc. als parameters en retourneert een opgemaakte/geconverteerde TEKST-waarde

  • SYS_GUID() toegevoegd 

    • vergelijkbaar met de UUID-functie in MariaDB

  • MINUS is toegewezen aan BEHALVE in UNION 

  • De functie ROWNUM retourneert het huidige aantal geaccepteerde rijen in de huidige context 

Replicatie, Galera en Binlog

In deze categorie heeft MariaDB binlog_expire_logs_seconds geïntroduceerd als een vorm van alias voor expire_logs_days, wat betekent dat eventuele wijzigingen aan een van deze automatisch worden doorgevoerd in de andere. Bovendien accepteert binlog_expire_logs_seconds een nauwkeurigheid van 1/1000000 dagen. Dit is uitzonderlijk handig bij schrijfbewerkingen met grote volumes op de master en wanneer de omgeving beperkte schijfruimte heeft.

Daarnaast heeft MariaDB ook wsrep_mode systeemvariabelen geïntroduceerd. Deze variabele schakelt WSREP-functies in die geen deel uitmaken van het standaardgedrag, zoals BINLOG_ROW_FORMAT_ONLY, DISALLOW_LOCAL_GTID, REQUIRED_PRIMARY_KEY, REPLICATE_ARIA, REPLICATE_MYISAM, STRICT_REPLICATION.

Sys-schema

De volgende functie is sys_schema, een verzameling weergaven, functies en procedures. Het lijdt geen twijfel dat sys_schema DBA's en ontwikkelaars op veel manieren helpt bij het interpreteren van gegevens; er kon veel informatie en diagnostische informatie uit worden gehaald. sys_schema wordt niet alleen gebruikt bij het oplossen van prestatieproblemen, maar helpt ook bij het efficiënt beheren van de bronnen. Gelukkig is dit nu beschikbaar in MariaDB 10.6.

Informatieschema

De nieuw toegevoegde functie in deze categorie is INFORMATION_SCHEMA.KEYWORDS en INFORMATION_SCHEMA.SQL_FUNCTIONS. De KEYWORDS-tabel bevat ongeveer 694 rijen MariaDB-sleutelwoorden, terwijl de SQL_FUNCTIONS-tabel ongeveer 234 rijen MariaDB-functies bevat. Met deze twee tabellen kunnen we nu het bijbehorende informatieschema verkrijgen voor het geval we het nodig hebben.

Afronden

Naast deze nieuwe functies die in MariaDB 10.6 zijn geïntroduceerd, zijn er veel andere verbeteringen aangebracht die niet in dit bericht zijn besproken. Hoewel veel van deze functies uit MySQL zijn overgenomen, zijn deze toevoegingen nog steeds zeer gunstig voor gebruikers.

Zoals eerder vermeld, ondersteunt ClusterControl momenteel MariaDB 10.6. Met ClusterControl kunt u gemakkelijk en zonder stress upgraden naar de nieuwste technologieversie. Als u ClusterControl nog niet kent, kunt u het 30 dagen gratis evalueren - geen CC vereist.

Als u op de hoogte wilt blijven van het laatste nieuws en best practices voor de meest populaire open-sourcedatabases, vergeet dan niet ons te volgen op Twitter en LinkedIn en u te abonneren op onze nieuwsbrief voor updates.


  1. Hoe gezond is uw SQL-server? Proactieve databasebewaking is van cruciaal belang

  2. MySQL - Herstel gedropte prestatieschemadatabase

  3. Converteer UTC-milliseconden naar DATETIME in SQL-server

  4. Gegevens opslaan in het Arabisch in de MySQL-database