Doli në treg versioni i bazës së të dhënave MariaDB 12.3.2, i cili shënohet si lëshimi i parë stabil i degës 12.3. Dega MariaDB 12.3 është klasifikuar si një version me mbështetje afatgjate dhe do të mbështetet deri në qershor 2029. Në të njëjtën kohë, është i disponueshëm lëshimi MariaDB 13.0.1, i cili ka statusin e kandidatëve për lëshim.
Projekti MariaDB zhvillon një degëzim të MySQL, që ruan përputhshmërinë prapavepruese dhe dallohet për integrimin e engine-ve shtesë të ruajtjes dhe funksionaliteteve të avancuara. Zhvillimi i MariaDB mbikëqyret nga organizata e pavarur MariaDB Foundation, në përputhje me një proces zhvillimi të hapur dhe transparent, të pavarur nga prodhues të veçantë. MariaDB shpërndahet si zëvendësim për MySQL në shumë distribucione Linux (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) dhe është implementuar në projekte të mëdha si Wikipedia, Google Cloud SQL dhe Nimbuzz.
Ndryshimet në degën MariaDB 12.3 në krahasim me lëshimin e mëparshëm LTS MariaDB 11.8:
- Implementimi i logut binar (binlog) është përmirësuar Plotësisht, komponentët kryesorë për mbajtjen e tij janë transferuar në motorin InnoDB. Kjo transferim ka lejuar eliminimin e logjikës së vjetruar të sinkronizimit, përshpejtimin e replikimit dhe rritjen e performancës së operacioneve të lidhura me shkrimin e të dhënave. Gjatë testimeve të implementimit të ri në sisteme me ngarkesë të lartë është vërejtur një rritje e performancës deri në 4 herë kur numri i operacioneve të shkrimit është i madh. Për aktivizimin e kësaj është propozuar konfigurimi "binlog_storage_engine=innodb".
- Shpejtësia e kërkimeve vektoriale përdorur tipin VECTOR është rritur 30-50%, i aplikuar në sistemet e mësimit të makinerisë. Ky përshpejtim arrihet falë optimizimit të llogaritjeve gjatë kërkimit të ngjashmërive midis vektorëve në hapësira me shumë dimensione dhe implementimit të një teknike të re eksitimi të bazuar në përfaqësimet e brendshme vektoriale (matryoshka embedding).
- Shtohen mundësi për të thjeshtuar migrimin nga bazat e të dhënave Oracle. Në modin e përputhshmërisë me bazën e të dhënave Oracle janë implementuar funksionet TO_NUMBER (konvertimi i vargut në numër), TO_DATE (konvertimi i vargut në datë) dhe TRUNC (shkurtime date, për shembull, deri në orë, ditë, muaj, vit), si dhe është shtetur mbështetje për array asociativ (INDEX BY) dhe sintaksën "( + )" për përcaktimin e bashkimeve të jashtme (outer join).
- Për të rritur përputhshmërinë me MySQL është shtuar plugin-i i autentikimit caching_sha2_password, i cili përdor algoritmin SHA2 për të bërë hash në vend të SHA1 dhe është përputhshëm me plugin-in e njëjtë nga MySQL 9.
- ĂshtĂ« shtuar njĂ« tip i ri XMLTYPE pĂ«r ruajtjen e tĂ« dhĂ«nave nĂ« formatin XML.
- ĂshtĂ« realizuar mundĂ«sia e pĂ«rdorimit tĂ« kursoreve me kĂ«rkesa tĂ« parametrizuara (prepared statement).
- ĂshtĂ« shtuar shprehja "SET PATH" pĂ«r tĂ« caktuar rendin e kĂ«rkimit tĂ« komponentĂ«ve tĂ« skemĂ«s sĂ« ruajtjes kur iu drejtohemi atyre pa specifikuar emrin e skemĂ«s.
- ĂshtĂ« implementuar mbĂ«shtetje pĂ«r operacionin "IS JSON" pĂ«r tĂ« kontrolluar llojin e shprehjes JSON, tĂ« pĂ«rcaktuar nĂ« standardin SQL:2023.
- Në shprehjen «PARTITION BY KEY» është realizuar mbështetje për algoritmet e hashimit MYSQL51, MYSQL55, BASE31, CRC32C, XXH32 dhe XXH3.
- Në engine-in e ruajtjes Aria është implementuar një cache i segmentuar i çelësave, ku çelësat ndahen në grupe që ruhen në segmente të veçanta të cache-it. Cache-i i ri ka bërë të mundur rritjen e performancës gjatë ekzekutimit paralel të kërkesave nga përdorues të ndryshëm. Numri i segmenteve përcaktohet përmes ndryshores aria_pagecache_segments, e cila mund të marrë vlera nga 1 (si parazgjedhje) deri në 128.
- ĂshtĂ« shtuar mundĂ«sia e pĂ«rdorimit tĂ« indekseve tĂ« bazuara nĂ« funksione (functional index) pĂ«r tĂ« rritur performancĂ«n e operacioneve GROUP/ORDER BY.
- ĂshtĂ« realizuar mbĂ«shtetje pĂ«r shprehjen «CREATE GLOBAL TEMPORARY TABLE» pĂ«r krijimin e tabelave globale pĂ«rkohshme. TĂ« tilla tabela pĂ«rkohshme fshihen pas pĂ«rfundimit tĂ« sesionit dhe janĂ« tĂ« dukshme pĂ«r tĂ« gjithĂ« pĂ«rdoruesit, por pĂ«rmbajnĂ« tĂ« dhĂ«na individuale pĂ«r çdo pĂ«rdorues.
- Shtuar mbështetje SSL-çelësa, të mbrojtur me fjalëkalim. Fjalëkalimi për zhbllokimin e certifikatave SSL mund të caktohet përmes variablës ssl_passphrase ose manualisht gjatë nisjes. serverë.
- ĂshtĂ« shtuar shprehja «SET SESSION AUTHORIZATION» pĂ«r tĂ« kryer veprime nĂ« emĂ«r tĂ« njĂ« pĂ«rdoruesi tjetĂ«r kur janĂ« caktuar privilegjet pĂ«rkatĂ«se (kjo shprehje mund tĂ« konsiderohet si njĂ« analog i «sudo» pĂ«r DBMS).
- Në shtojcën file_key_management.so është shtuar mbështetja për hash-et SHA-2.
- ĂshtĂ« shtuar mbĂ«shtetja pĂ«r variabla tĂ« dobĂ«ta tĂ« kursorit (weak cursor variable) tĂ« tipit tĂ« paracaktuar SYS_REFCURSOR, tĂ« cilat lejojnĂ« kthimin e njĂ« kursori nga procedurat e ruajtura (nĂ« parametrin OUT) ose nga funksionet (nĂ« shprehjen RETURN). PĂ«r tĂ« kufizuar numrin maksimal tĂ« kursorĂ«ve tĂ« hapur njĂ«kohĂ«sisht, Ă«shtĂ« shtuar variabla e sistemit «max_open_cursors».
- Në tipin TO_CHAR është shtuar mbështetje për formatin FM (Fill Mode) për të përjashtuar mbushjen e tepërt. Për shembull, kërkesa
«SELECT CONCAT(â/â, TO_CHAR(â2020-01-06 10:11:12â, âFMDAYâ), â/â);» do tĂ« kthejĂ« «/E HĂ«nĂ«/» nĂ« vend tĂ« «/E HĂ«nĂ« /». - NĂ« utilitarin mariadb-check dhe nĂ« shprehjen CHECK TABLE Ă«shtĂ« shtuar mbĂ«shtetja pĂ«r tabelat e motorit SEQUENCE.
- Në optimizues është shtuar mbështetje për opsionet (hint) që ndikojnë në ndërtimin e planit të optimizimeve: QB_NAME, NO_RANGE_OPTIMIZATION, NO_ICP, MRR, NO_MRR, BKA, NO_BKA, BNL, NO_BNL, SEMIJOIN, SUBQUERY, JOIN_FIXED_ORDER, JOIN_ORDER, JOIN_PREFIX, JOIN_SUFFIX, MAX_EXECUTION_TIME, [NO_]JOIN_INDEX, [NO_]GROUP_INDEX, [NO_]ORDER_INDEX, [NO_]INDEX, [NO_]SPLIT_MATERIALIZED, NO_ROWID_FILTER, INDEX_MERGE/NO_INDEX_MERGE, [NO_]DERIVED_CONDITION_PUSHDOWN dhe [NO_]MERGE. Opsionet përfshihen në kërkesë në formatin e përshtatshëm me MySQL, për shembull:
SELECT /*+ BKA(t1) NO_BKA(t2) */ * FROM t1 INNER JOIN t2 WHERE ...;
SELECT /*+ MAX_EXECUTION_TIME(1000) */ * FROM t1 INNER JOIN t2 WHERE ...; - ĂshtĂ« rritur performanca e shprehjeve tĂ« papĂ«rshkruara «LEFT JOIN» dhe skanimit tĂ« pĂ«rshkruar gjatĂ« pĂ«rdorimit tĂ« shprehjes «PARTITION BY RANGE».
- Në rezultatet e gjurmimit të optimizuesit është siguruar shfaqja e përkufizimeve
tabelave dhe pamjeve. - Gjatë kryerjes së operacioneve të bashkimit të tabelave (JOIN) është realizuar optimizimi që merr parasysh unikësinë e rreshtave në nënkërkesa me shprehjen «GROUP BY» për parashikimin më të saktë të numrit të rreshtave rezultues (out_rows) dhe aplikimin e saktë të indekseve.
- ĂshtĂ« pĂ«rmirĂ«suar shkallĂ«zueshmĂ«ria e bllokimeve MDL (Metadata Lock).
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r funksionet e reja GIS (Sistemi Informativ Gjeografik):
ST_Validate, MBRCoveredBy, ST_Simplif, ST_GeoHash, ST_LatFromGeoHash, ST_LongFromGeoHash, ST_PointFromGeoHash, ST_IsValid, ST_Collect. - ĂshtĂ« shtuar mbĂ«shtetja pĂ«r trigger-a qĂ« aktivizohen pĂ«r disa ngjarje. NĂ« shprehjen CREATE TRIGGER tani mund tĂ« renditen ngjarjet pĂ«rkatĂ«se duke pĂ«rdorur sintaksĂ«n «{ event [ OR ⊠] }».
- Në plugin-in për mbajtjen e audit log është shtuar mbështetja për buferimin e operacioneve të shkrimit në log. Madhësia e buferit përcaktohet përmes ndryshores server_audit_file_buffer_size.
ĂshtĂ« realizuar ruajtja nĂ« logun e auditit tĂ« informacionit mbi portat rrjetit pĂ«r lidhjet e ardhshme (mĂ« parĂ« vetĂ«m hosti shfaqej). - NĂ« utilitĂ«n mariadb Ă«shtĂ« shtuar opsioni «âscript-dir» pĂ«r tĂ« pĂ«rcaktuar njĂ« direktori alternative pĂ«r kĂ«rkimin e skripteve qĂ« nisen me komandĂ«n SOURCE.
- ĂshtĂ« lejuar pĂ«rdorimi i replikimit nĂ« modalitet paralel gjatĂ« replikimit asinkron tĂ« tĂ« dhĂ«nave midis dy klasterĂ«ve Galera.
- NĂ« mjetin mariadb-dump Ă«shtĂ« shtuar mundĂ«sia e pĂ«rcaktimit tĂ« maskave (pĂ«r shembull, «database_*»), duke pĂ«rdorur opsionin «-L» (âwildcards).
- ĂshtĂ« hequr kĂ«rkesa pĂ«r unikalitetin e identifikuesve tĂ« çelĂ«save tĂ« huaj (foreign key) nĂ« kuadĂ«r tĂ« gjithĂ« DB-sĂ« (mjafton unikaliteti nĂ« nivel tabele).
- Janë hequr kufizimet mbi nivelin e thellësisë së strukturave në funksionet për punën me JSON (kufiri JSON_DEPTH_LIMIT, i cili më parë merrte vlerën 32, është hequr).
- ĂshtĂ« shtuar tabela TRIGGERED_UPDATE_COLUMNS nĂ« skemĂ«n INFORMATION_SCHEMA (INFORMATION_SCHEMA.TRIGGERED_UPDATE_COLUMNS), qĂ« tregon kolonat qĂ« ndryshohen gjatĂ« aktivizimit tĂ« trigger-it.
- Në tabelën PARAMETERS në skemën INFORMATION_SCHEMA është realizuar kolona PARAMETER_DEFAULT, e cila përmban vlerat e paracaktuara të parametrave të procedurave të ruajtura.
- Janë hequr variablat big_tables, large_page_size dhe storage_engine, të cilat më parë ishin shënuar si të vjetruara.
Burimi: opennet.ru
