Uus MariaDB 11.4 Zone serverites

Ingmar Aasoja
RSS: 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: E-poe SEO ehk kuidas suurendada nähtavust ja müüki unikaalse sisu abil

Montonio
Kui oled sa kunagi guugeldanud fraase nagu "parimad juhtmevabad kõrvaklapid" või "odavad veekindlad matkajalatsid"? Kui jah, siis oled omal nahal kogenud,...

CloudFest: pilvetehnoloogia suursündmus otse Europa-Pargist

Nikita Tikhomirov
Kui rääkida Euroopa suurimast ja mõjukaimast pilvetehnoloogia ning interneti infrastruktuuri sündmusest, siis peaks iga IT-valdkonna ettevõtte kalendris...

Webmail.ee uuenes: samm sujuvama kasutajakogemuse suunas

Nikita
Veebimajutuse ja e-posti teenuste kiiresti arenevas maailmas on kasutajate ootustele vastamine esmatähtis. Eesti juhtiva domeenide registreerimise ja...

Halda oma WordPressi muretult - too oma sait Zone+ haldusesse

Ingmar Aasoja
Lisasime Zone+ haldusesse võimaluse importida WordPressi rakendusi, et lihtsustada nende haldamist. Meie haldusesse saab tuua rakenduse, mis on meie serverisse...