Uus MariaDB 11.4 Zone serverites

Ingmar Aasoja
Jaga:

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.

Uus MariaDB 11.4 Zone serverites

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. Koos CHECK klausliga saab skeemipõhise kontrolli siduda ka tabeli loomisega.

MariaDB 11.2:

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`) ASCCode 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.

Populaarsed postitused

Partner soovitab: milliseid makseviise kassas pakkuda?

Montonio
E-kaubanduse maailm on teinud suure hüppe edasi ajast, mil maksevõimalused piirdusid sularaha ja keeruliste pangaülekannetega. Tänapäeval võib makseprotsess...

Veebimajutus algajatele: Zone teenustega saad kodulehe valmis kiiresti ja turvaliselt

Nikita
Oma kodulehe loomine võib tunduda keeruline, eriti kui sul puudub varasem kokkupuude serverite, domeenide või veebidisainiga. Zone – Eesti juhtivaid...

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

Smaily
Meiliturundus annab tiheda konkurentsiga ärimaailmas võimaluse teistest eristuda ja oma kliente kaasata. Kui oled selles valdkonnas alles alustamas,...

Kas Google kaob ehk kuidas AI-optimeerida oma kodulehte ChatGPT-ajastul

Triin
Me peame taas rääkima tehisintellektist. Täpsemalt AI-st kui otsingumootorist ja sellest, kuidas see mõjutab sinu ettevõtet. Kuigi ligi 90% ettevõtetest...