Ipinakilala ang bagong makabuluhang sangay ng MariaDB 11 DBMS

10 taon pagkatapos ng pagkakatatag ng 10.x branch, inilabas ang MariaDB 11.0.0, na nagdadala ng ilang malalaking pagpapabuti at paglabag sa mga pagbabago sa compatibility. Nasa alpha release quality pa rin ang branch at magiging handa para sa produksyon na paggamit pagkatapos ng stabilization. Ang susunod na makabuluhang sangay ng MariaDB 12, na naglalaman ng mga pagbabago na sumisira sa compatibility, ay inaasahang hindi mas maaga kaysa sa 10 taon (sa 2032).

Ang proyekto ng MariaDB ay bumuo ng isang tinidor mula sa MySQL na nagpapanatili ng pabalik na pagkakatugma kung saan posible at nakikilala sa pamamagitan ng pagsasama ng mga karagdagang storage engine at mga advanced na tampok. Ang pagpapaunlad ng MariaDB ay pinangangasiwaan ng independiyenteng MariaDB Foundation, kasunod ng isang bukas at malinaw na proseso ng pag-unlad na independyente sa mga indibidwal na vendor. Pinapalitan ng MariaDB ang MySQL sa maraming distribusyon ng Linux (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) at pinagtibay ng mga pangunahing proyekto tulad ng Wikipedia, Google Cloud SQL, at Nimbuzz.

Ang isang pangunahing pagpapabuti sa sangay ng MariaDB 11 ay ang pagsasalin ng query optimizer sa isang bagong modelo ng timbang (modelo ng gastos), na nagbibigay ng mas tumpak na hula ng mga timbang ng bawat plano sa pagpapatupad ng query. Bagama't inaalis ng bagong modelo ang ilang bottleneck sa pagganap, posibleng hindi ito magiging pinakamainam sa lahat ng sitwasyon at maaaring bumagal ang ilang query, kaya hinihikayat ang mga user na lumahok sa pagsubok at abisuhan ang mga developer kung sakaling magkaroon ng mga problema.

Ang nakaraang modelo ay gumana nang maayos para sa paghahanap ng pinakamainam na index, ngunit nagkaroon ng mga problema sa applicability ng mga pag-scan ng talahanayan, mga pag-scan ng index, o mga pagkuha ng hanay. Sa bagong modelo, ang kawalan na ito ay inalis sa pamamagitan ng pagpapalit ng batayang bigat ng mga operasyon gamit ang storage engine. Ipinapalagay na ngayon ng mga pagsusuri sa pagganap para sa mga pagpapatakbo ng disk-intensive tulad ng mga sunud-sunod na pag-scan ng pagsulat ng data ay nakaimbak sa isang SSD na may kakayahang 400MB na pagbabasa bawat segundo. Bilang karagdagan, ang iba pang mga parameter ng timbang ng optimizer ay nakatutok, na, halimbawa, ay naging posible na gumamit ng mga index para sa ORDER BY/GROUP BY na mga operasyon sa mga subquery at pabilisin ang trabaho sa napakaliit na mga talahanayan.

Napansin na ang bagong modelo ng timbang ay magbibigay-daan sa pagpili ng mas pinakamainam na plano sa pagpapatupad ng query sa mga sumusunod na sitwasyon:

  • Kapag gumagamit ng mga query na sumasaklaw sa higit sa 2 talahanayan.
  • Kapag may mga index na naglalaman ng malaking bilang ng magkaparehong halaga.
  • Kapag gumagamit ng mga saklaw na sumasaklaw sa higit sa 10% ng talahanayan.
  • Kapag mayroon kang mga kumplikadong query kung saan hindi lahat ng ginamit na column ay na-index.
  • Kapag ginamit ang mga query na nagsasangkot ng iba't ibang storage engine (halimbawa, kapag ang isang query ay naglalaman ng access sa mga talahanayan sa InnoDB at Memory engine).
  • Kapag gumagamit ng FORCE INDEX upang mapabuti ang query plan.
  • Kapag lumala ang query plan sa kaso ng paggamit ng "ANALYZE TABLE".
  • Kapag ang query ay sumasaklaw sa isang malaking bilang ng mga view (malaking bilang ng mga nested SELECT).
  • Kapag gumagamit ng ORDER BY o GROUP BY na mga clause na tumutugma sa mga index.

Mga pangunahing break sa compatibility sa sangay ng MariaDB 11:

  • Hindi ka na pinapayagan ng SUPER rights na magsagawa ng mga aksyon kung saan available ang mga hiwalay na nakatakdang pribilehiyo. Halimbawa, ang pagpapalit ng format ng mga binary log ay mangangailangan ng mga karapatan ng BINLOG ADMIN.
  • Inalis ang pagpapatupad ng buffer ng pagbabago sa InnoDB.
  • Hindi na ginagamit ang innodb_flush_method at innodb_file_per_table.
  • Ang suporta para sa mga pangalan ng mysql* ay hindi na ginagamit.
  • Hindi na ginagamit ang explicit_defaults_for_timestamp sa 0.
  • Ang mga simbolikong link ay inilipat sa isang hiwalay na pakete para sa pagiging tugma sa MySQL.
  • Ang halaga ng parameter na innodb_undo_tablespaces ay binago mula sa default patungong 3.

Pinagmulan: opennet.ru

Magdagdag ng komento