Aprilli alguse seisuga uuendati Zone jagatud majutuse MariaDB andmebaasimootorid kõik uuele pika toega versioonile 11.4 (kogukonna tugi kuni 2029. aasta maini). Eelneva versiooni (10.6) tugi oleks lõppenud aasta pärast ning kuna vahepeal oli lisandunud mitmeid uuendusi, mida kliendid olid meilt küsinud, oli aeg uuenduste teekond ette võtta.

Tavakasutajale ei pruugi kõik muudatused koheselt silma paista, kuid üldiselt võib öelda, et päringumootorit on märkimisväärselt optimeeritud – näiteks päringud, mis varem võisid võtta kümneid sekundeid, saavad nüüd vastuse mõne hetkega. Tulemuseks on kiiremini töötavad veebilehed, vähem klientide frustratsiooni ja parem SEO.
Aga see pole veel kõik. Ka tehnilisemate kasutajate jaoks on lisandunud mitmeid põnevaid võimalusi.
UUID andmetüüp
Võib öelda, et üks oodatuimaid uuendusi on UUID andmetüübi lisandumine. Andmed salvestatakse nüüd indeksi-sõbralikult ning UUIDv1 versioonid võimaldavad salvestamist ka ajaliselt sorteeritavas vormis. Lisandunud on ka funktsioonid UUID
, UUIDv4
ja UUIDv7
vastavate versioonide genereerimiseks.
Eelis võrreldes VARCHAR
tüübi kasutamisega on üle 50% suurem ruumisääst (32 baiti vs 16 baiti), mis tähendab väiksemaid ja kiiremaid indekseid.
INET4 andmetüüp
Kui varem oli olemas INET6
andmetüüp, mis võimaldas salvestada nii IPv4 kui ka IPv6 aadresse, siis nüüd on lisandunud INET4
, mis on kitsamalt suunatud ainult IPv4 aadresside salvestamiseks. Neid andmetüüpe saab omavahel võrrelda, teisendades andmed INET6
tüübiks. Kuna aadressid salvestatakse binaarselt (4 või 16 baiti), siis on need andmebaasis päringuteks optimeeritumad ja sorteeritavad võrreldes tekstilise salvestusviisiga.
Uued JSON_* funktsioonid
MariaDB on järjestikuste versioonidega lisanud uusi JSON-funktsioone:
MariaDB 10.7:
JSON_EQUALS
– kahe JSON objekti samasuse võrdlemiseks, sõltumata elementide järjekorrast.JSON_NORMALIZE
– sorteerib ja eemaldab tühimärgid, lihtsustades andmete võrdlemist.
MariaDB 10.9:
JSON_OVERLAPS
– kontrollib kahe JSON objekti ühisosa olemasolu.
MariaDB 11.1:
JSON_SCHEMA_VALID
– kontrollib, kas sisend vastab määratud skeemile. KoosCHECK
klausliga saab skeemipõhise kontrolli siduda ka tabeli loomisega.
MariaDB 11.2:
JSON_OBJECT_TO_ARRAY
JSON_ARRAY_INTERSECT
– kahe massiivi ühisosa leidmiseksJSON_OBJECT_FILTER_KEYS
– võtmete põhjal objektide filtreerimiseksJSON_KEY_VALUE
Samuti on lisandunud JSONPath süntaksisse võimalus küsida negatiivseid massiivi positsioone ([-n]
) ja vahemikke ([n-m]
).
NATURAL_SORT_KEY
Semantiliste versioonide ja IP-aadresside salvestamisel andmebaasi on sorteerimine olnud tihti tehniliseks kadalipuks, sest VARCHAR
tüübi puhul järjestatakse andmed tähestikuliselt. Uus NATURAL_SORT_KEY
võimaldab nüüd kasutada loogilist järjestust, nt SKU-de või IP-aadresside sorteerimisel.
Näiteks WooCommerce’i andmebaasist saab pärida tooteid sorteerideis neid SKU järgi:
SELECT
p.ID,
p.post_title AS toote_nimi,
wpml.sku AS toote_sku
FROM
wp_posts p
JOIN
wc_product_meta_lookup wpml ON p.ID = wpml.product_id
WHERE
p.post_type = 'product'
AND p.post_status = 'publish'
ORDER BY
NATURAL_SORT_KEY(wpml.sku);
Code language: SQL (Structured Query Language) (sql)
Või näiteks parandada päringuid, kus numbrid salvestatakse VARCHAR
väljale:
SELECT * FROM
`woocommerce_order_itemmeta`
WHERE
`meta_key` LIKE '_line_subtotal'
ORDER BY
NATURAL_SORT_KEY(`woocommerce_order_itemmeta`.`meta_value`) ASC
Code language: SQL (Structured Query Language) (sql)
SFORMAT
Kui varem pidi SQL-i päringutes andmeid teksti sisestamiseks kasutama tüütut CONCAT()
funktsiooni, siis nüüd saab kasutada SFORMAT
, mis töötab sarnaselt PHP sprintf()
funktsioonile. See teeb päringud kompaktsemaks ja loetavamaks:
SELECT SFORMAT(
'Kasutaja {} e-posti aadressiga {} loodi {}',
user_login,
user_email,
user_registered
) AS kirjeldus
FROM wp_users;
Code language: SQL (Structured Query Language) (sql)
RANDOM_BYTES
RANDOM_BYTES
funktsioon pakub andmebaasis turvalise juhusliku baidijada või stringi genereerimise võimalust. See võimaldab näiteks faili ligipääsu räsi luua otse andmebaasis ilma täiendava skriptita – tuttav lahendus juba paljudele PHP arendajatele:
CREATE TABLE failid (
id INT AUTO_INCREMENT PRIMARY KEY,
failinimi VARCHAR(255) NOT NULL,
avalik_hash VARCHAR(64) NOT NULL DEFAULT (HEX(RANDOM_BYTES(16)))
);
INSERT INTO `failid` (`failinimi`) VALUES ('fail.txt');
Code language: SQL (Structured Query Language) (sql)
Kokkuvõte
MariaDB 11.4 toob Zone jagatud majutuses kaasa mitmeid tehnilisi ja jõudlust parandavaid uuendusi. Kasutajad saavad kasu kiiremast andmetöötlusest, väiksematest andmemassiividest ja suuremast funktsionaalsusest, eriti just UUID, IP-aadresside, JSON-iga ja loogilise sorteerimisega töötamisel. See uuendus aitab paremini vastata nii tavakasutajate kui ka arendajate ootustele.
Navigeerimine
Populaarsed postitused

Partner soovitab: milliseid makseviise kassas pakkuda?

Veebimajutus algajatele: Zone teenustega saad kodulehe valmis kiiresti ja turvaliselt

Partner soovitab: Kuidas kirjutada tõhusaid e-kirju ehk juhend meiliturundusega alustajale
