---
title: "Uus MariaDB 11.4 Zone serverites"
canonical_url: "https://www.zone.ee/blogi/uus-mariadb-11-4-zone-serverites/"
post_type: "post"
published: "2025-04-25T04:35:26+00:00"
modified: "2025-05-19T09:17:37+00:00"
author: "Ingmar Aasoja"
featured_image: "https://www.zone.ee/static/sites/2/2025/04/Uus-MariaDB-11-4-Zone-serverites.webp"
taxonomies:
  category:
    - name: "Uuendused"
      url: "https://www.zone.ee/blogi/category/uuendused/"
  post_tag:
    - name: "andmebaas"
      url: "https://www.zone.ee/blogi/tag/andmebaas/"
    - name: "MariaDB"
      url: "https://www.zone.ee/blogi/tag/mariadb/"
    - name: "MariaDB 11.4"
      url: "https://www.zone.ee/blogi/tag/mariadb-11-4/"
    - name: "Tehniline"
      url: "https://www.zone.ee/blogi/tag/tehniline/"
  skills:
    - name: "Edasijõudnule"
      url: "https://www.zone.ee/blogi/skill/edasijoudnule/"
    - name: "Spetsialistile"
      url: "https://www.zone.ee/blogi/skill/spetsialistile/"
---

# Uus MariaDB 11.4 Zone serverites

**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](https://www.zone.ee/static/sites/2/2025/04/Uus-MariaDB-11-4-Zone-serverites-1024x577.webp)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 `<a href="https://mariadb.com/kb/en/uuid/">UUID</a>`, `<a href="https://mariadb.com/kb/en/uuid_v4/">UUIDv4</a>` ja `<a href="https://mariadb.com/kb/en/uuid_v7/">UUIDv7</a>` 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:**

- `<a href="https://mariadb.com/kb/en/json_equals/">JSON_EQUALS</a>` – kahe JSON objekti samasuse võrdlemiseks, sõltumata elementide järjekorrast.
- `<a href="https://mariadb.com/kb/en/json_normalize/">JSON_NORMALIZE</a>` – sorteerib ja eemaldab tühimärgid, lihtsustades andmete võrdlemist.

**MariaDB 10.9:**

- `<a href="https://mariadb.com/kb/en/json_overlaps/">JSON_OVERLAPS</a>` – kontrollib kahe JSON objekti ühisosa olemasolu.

**MariaDB 11.1:**

- `<a href="https://mariadb.com/kb/en/json_schema_valid/">JSON_SCHEMA_VALID</a>` – kontrollib, kas sisend vastab määratud skeemile. Koos `CHECK` klausliga saab skeemipõhise kontrolli siduda ka tabeli loomisega.

**MariaDB 11.2:**

- `<a href="https://mariadb.com/kb/en/json_object_to_array/">JSON_OBJECT_TO_ARRAY</a>`
- `<a href="https://mariadb.com/kb/en/json_array_intersect/">JSON_ARRAY_INTERSECT</a>` – kahe massiivi ühisosa leidmiseks
- `<a href="https://mariadb.com/kb/en/json_object_filter_keys/">JSON_OBJECT_FILTER_KEYS</a>` – võtmete põhjal objektide filtreerimiseks
- `<a href="https://mariadb.com/kb/en/json_key_value/">JSON_KEY_VALUE</a>`

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 `<a href="https://mariadb.com/kb/en/natural_sort_key">NATURAL_SORT_KEY</a>` 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:

```sql
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:

```sql
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 `<a href="https://mariadb.com/kb/en/sformat/">SFORMAT</a>`, mis töötab sarnaselt PHP `sprintf()` funktsioonile. See teeb päringud kompaktsemaks ja loetavamaks:

```sql
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

`<a href="https://mariadb.com/kb/en/random_bytes/">RANDOM_BYTES</a>` 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:

```sql
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.
