MariaDB- program na prácu s databázami. Ide o freeware aplikáciu, ktorá bola vytvorená ako alternatíva k licencovanému MySQL. Podľa princípu svojej práce je veľmi podobný identickému produktu od spoločnosti Oracle. DBMS podporuje štandardné funkcie a formáty: myisam, blackhole, csv. Podporuje rovnaké klientske API, protokoly a štruktúry ako MySQL. Všetky konektory (PHP, Perl, Python, Java, .NET, MyODBC, Ruby) dokonale spolupracujú so systémom správy databáz. Čas vykonania požiadavky je oveľa kratší ako u licencovaného náprotivku. Replikácie sú rýchlejšie a bezpečnejšie. Vylepšené asynchrónne I/O pre tabuľky InnoDB. Podporuje zdieľanie vyrovnávacej pamäte pre MyISAM. To vám umožňuje zrýchliť prácu s tabuľkami MyISAM 4-krát.



- Umožňuje vám pracovať s rôznymi databázami.
- Ide o databázový riadiaci systém pre ukladanie dát.
- Podporuje mnoho klientskych aplikácií a API.
- Perfektne sa pripája k väčšine konektorov.
- Umožňuje vytvárať rôzne databázy na ukladanie informácií.
- Úložný modul Aria umožňuje rýchlejšie spracovanie zložitých dopytov.
- Podporuje funkciu "Zabiť všetky požiadavky pre používateľa".
- Má bohatú sadu vylepšených funkcií.
- Vylepšené asynchrónne I/O pre tabuľky MyISAM.
- Podporuje paralelnú replikáciu.
- Má veľa optimalizovaných parametrov.
- Vynikajúce riešenie pre vývojárov webu, ktorí uprednostňujú bezplatný softvér.
- Existuje podpora pre ruský jazyk.


- Procesor s hodinovou frekvenciou 1200 MHz alebo vyššou.
- RAM 256 MB alebo viac.
- Voľné miesto na pevnom disku od 636 MB.
- 32-bitová alebo 64-bitová architektúra (x86 alebo x64).
- Operačný systém Windows XP, Windows Vista, Windows 7, Windows 8, Windows 10

DBMS: Porovnávacie tabuľky

Názov programu V ruštine distribúcie inštalatér Popularita Veľkosť Index
★ ★ ★ ★ ★ 286,7 MB 100
★ ★ ★ ★ ★ 0,5 Mb 97

Po roku a pol vývoja a piatich predbežných vydaniach sa sformovalo prvé stabilné vydanie novej vetvy MariaDB 10.2 DBMS, v rámci ktorej sa vyvíja vetva MySQL, ktorá zachováva spätne kompatibilné a vyznačuje sa integráciou ďalších úložných modulov a pokročilých funkcií. Na vývoj MariaDB dohliada nezávislá nadácia MariaDB, ktorá sa riadi plne otvoreným a transparentným procesom vývoja nezávisle od jednotlivých predajcov. MariaDB sa dodáva namiesto MySQL v mnohých distribúciách Linuxu (RHEL 7, SUSE 12, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian 9) a bola prijatá veľkými projektmi, ako sú Wikipedia, Google Cloud SQL a Nimbuzz.

Kľúčové vylepšenia v MariaDB 10.2:

  • Pridaná experimentálna podpora pre úložisko MyRocks, vyvinutý spoločnosťou Facebook na základe úložiska RocksDB optimalizovaného pre Flash. Úložisko MyRocks používa dátové stránky s pohyblivou veľkosťou, aby sa predišlo zarovnaniu na pevnej hranici bloku, a model ukladania údajov Log Structured Merge Trees, ktorý umožňuje len vyplnenie (vyčistenie vykonáva zberač odpadu). V procese vykonávania dotazu sa počet sekvenčných operácií čítania / zápisu niekoľkokrát znížil, čo viedlo k zvýšeniu výkonu v porovnaní s InnoDB o 20-30% na SDD a až 6-násobne na HDD pri zaťažení s veľkým počtom operácie náhodného zápisu. MyRocks navyše umožňuje zmenšiť veľkosť databázy o 50 % v porovnaní s komprimovaným úložiskom InnoDB a 3,5-krát v porovnaní s InnoDB bez kompresie. Medzi nedostatky MyRocks možno zaznamenať nedostatočnú podporu pre cudzie kľúče a fulltextové indexy;
  • Pridaná podpora pre funkcie okna definované pomocou kľúčové slovo OVER a umožní vám vykonať výpočet na množine riadkov priradených k aktuálnemu riadku. Podobne ako agregované funkcie, aj funkcie okna vám umožňujú odkazovať na iné riadky pri spracovaní výsledku dotazu, ale na rozdiel od agregovaných funkcií nezoskupujú výsledok do jedného riadka;
  • Podpora bežných tabuľkových výrazov ("WITH" výraz) a rekurzívnych bežných tabuľkových výrazov ("WITH RECURSIVE"). Klauzula WITH sa môže použiť na definovanie poddotazov ako lokálnych dočasných tabuliek, na ktoré možno v dotaze odkazovať viackrát. "WITH RECURSIVE" vám umožňuje prístup k vášmu vlastnému výsledku, napríklad môžete organizovať prechod cez strom v procese vykonávania dotazu;
  • Pridaný príkaz "CONSTRAINT... CHECK" v bloku "CREATE TABLE" na nastavenie obmedzení stĺpcov;
  • Implementovaná schopnosť špecifikovať výrazy v bloku DEFAULT, napríklad "b int DEFAULT (a+1)". Bola poskytnutá podpora pre špecifikáciu DEFAULT hodnôt pre polia BLOB a TEXT;
  • Úložisko InnoDB bolo aktualizované na vydanie z MySQL 5.7.18 a je predvolene povolené (predtým bol predvolený fork z InnoDB - XtraDB, ktorého význam sa stratil potom, čo InnoDB implementovalo väčšinu hlavných funkcií XtraDB). InnoDB pridal podporu pre priestorové indexy (priestorový index);
  • Pridaný príkaz „SHOW CREATE USER“ zobrazujúci celý príkaz „CREATE USER“ použitý na vytvorenie určeného používateľa;
  • Pre výraz "CREATE USER" boli implementované voľby na obmedzenie spotreby prostriedkov a konfiguráciu tls/ssl. Teraz môžete napríklad obmedziť maximálny počet požiadaviek alebo spojení za hodinu;
  • Bol zavedený nový príkaz „ALTER USER“, ktorý umožňuje vykonávať zmeny účtu existujúci používateľ;
  • Odstránené mnohé obmedzenia pre virtuálne vypočítané stĺpce;
  • Pridaná podpora pre príkaz "EXECUTE IMMEDIATE" na spustenie dynamického príkazu SQL vytvoreného za behu;
  • Pridaná možnosť použiť väčšinu výrazov do príkazu PREPARE;
  • Pridané funkcie pre prácu s dátami vo formáte JSON;
  • Pridaný overovací doplnok, ktorý používa algoritmus ed25519 na ukladanie hesiel;
  • Plugin na dešifrovanie kľúčov používaných v Amazon Web Services (AWS) Key Management Service (KMS) bol pridaný do zostavení pre Windows, CentOS, RHEL a Fedora na ich následné použitie na šifrovanie údajov v databáze;
  • Teraz môžete viazať niekoľko rôznych spúšťačov na jednu udalosť;
  • Pridaná podpora pre oneskorenú replikáciu, v ktorej stav podriadeného servera zaostáva za nadradeným serverom o určitú dobu;
  • Prepracovaná bola implementácia výrazu ANALYZE TABLE, ktorý teraz nezamyká tabuľku počas zberu štatistík;
  • Knižnica wsrep používaná na organizáciu synchrónnej replikácie Galera s viacerými mastermi (aktívna-aktívna) bola aktualizovaná na vydanie 25.3.20;
  • Poskytnuté balenie pre Ubuntu 17.04;
  • Do mysqldump bola pridaná možnosť „--add-drop-trigger“, ktorá reprodukuje funkčnosť MySQL 5.6 na pridanie výrazu do výpisu SQL na zrušenie spúšťača pred jeho vytvorením;
  • Pridaný skript mysqlbinlog na organizovanie nepretržitej zálohy binárneho denníka;
  • Pridaná podpora pre OpenSSL 1.1 a LibreSSL;
  • Pridané premenné innodb_deadlock_detect a innodb_stats_include_delete_marked na vypnutie systému detekcie zablokovania a zohľadnenie záznamov označených ako vymazané pri výpočte štatistík;
  • Pridaná premenná read_binlog_speed_limit, ktorá nastavuje rýchlostný limit, s ktorým podriadený server číta binárny protokol hlavného servera;
  • Stará klientska knižnica s licenciou GPL bola odstránená a nahradená novou knižnicou s licenciou LGPL.

Od autora: systém správy databáz sa stal neoddeliteľnou súčasťou vývoja dynamického webového produktu. S jeho pomocou môžete systematizovať celý rad potrebných súborov. Toto všetko je potrebné pre rýchly prístup a optimalizácia aplikácie alebo webovej stránky. Ale úplné zvládnutie všetkého, dokonca aj tých najobľúbenejších, bude trvať desaťročia. Malo by sa určiť, ktorý z nich budete používať, študovať a pumpovať svoje zručnosti. Najpopulárnejšie porovnanie je MariaDB vs MySQL. Práve na ne sa dnes zameriame. Nezabúdajme ani na produkty, ktoré si len získavajú obľubu, no už teraz majú výraznú konkurenčnú výhodu.

Relačný systém

Predtým, ako boli takéto riešenia vynájdené, neprichádzalo do úvahy vytvárať masívne produkty. Aj tie stroje, ktoré mali dobré množstvo fyzických a Náhodný vstup do pamäťe, sa nepodarilo spracovať veľké dáta, ak bol uložený pomerne chaoticky – vo forme súborov. Začiatkom osemdesiatych rokov vyšiel prvý RDBMS, ktorého vývojármi bola spoločnosť IBM.

Vytvorenie databázy sa na prvý pohľad javí ako veľmi triviálna úloha. Navonok všetko vyzerá jednoducho, ako veľká tabuľka, v ktorej sú v stĺpcoch umiestnené rôzne typy informácií. V skutočnosti tomuto vynálezu predchádzalo množstvo matematických diskusií a vývojových pokusov. Hlavným cieľom nebolo vytvoriť jednoduchú databázu, ale takú, v ktorej budú premenné závisieť jedna od druhej. Najpresnejší popis budúcej databázy podal Dr. Codd, ktorý vytvoril 12 pravidiel relačnej databázy. Mimochodom, je ich 13. Používajú sa dodnes na vývoj relačnej databázy.

Systém správy relačných databáz by nemal používať žiadne iné metódy správy ako relačné. Toto všetko sa môže zdať jednoduché len tomu, kto rozumie matematickým pojmom aspoň v ideologickej rovine. Medzi každou atómovou jednotkou údajov musí existovať relačný vzťah, ktorý je oveľa lepší ako len súbory roztrúsené po fyzickom úložisku.

JavaScript. Rýchly štart

Ako sme povedali, DBMS je tabuľka a systém nemôže mať inú štruktúru. Ale údaje v tabuľke môžu byť veľmi iný typ. Niektoré DBMS nepodporujú toľko typov, niektoré dokonca zavádzajú nové informačných technológií. Sú to boolovské hodnoty, reťazce a údaje s pohyblivou rádovou čiarkou a mnoho ďalších. A všetky tieto údaje sú vzájomne prepojené podľa relačného modelu.

Aby však bolo možné zapisovať údaje do reťazca, musí mať daný typ údajov. Veľmi podobný postup robíte s bunkami v Exceli a podobných programoch. Z týchto pravidiel samozrejme existujú výnimky, ale to je téma na celú knihu, nie naše porovnávanie databáz.

Pokiaľ ide o webové stránky a aplikácie, bunky obsahujú údaje o používateľoch zdroja, samotný obsah, produkty a čokoľvek iné. Účelom tejto databázy je promptne poskytnúť tieto informácie na žiadosť užívateľa: serverový skript výmenou za klientsky skript.

Výhody a nevýhody DBMS

Súhlasíte, ak by DBMS malo viac nevýhod ako výhod, nikto by ich tak aktívne nevyužíval. Ak urobíme porovnanie systém súborov a web na ňom postavený, uvidíte, o koľko plynulejšie a efektívnejšie funguje systém správy databáz. Preto začneme bodmi, na ktorých budú musieť pracovať všetky systémy bez výnimky, nech je to MariaDB alebo MySQL.

Medzi často diskutované nedostatky moderné systémy správa databázy:

nie je ľahké zvládnuť. Ak chcete pracovať s Photoshopom, musíte poznať základné nástroje tohto softvéru a naučiť sa ich používať. Nie je potrebné pochopiť, ako samotný program funguje. To sa o DBMS povedať nedá. Pochopiť, ako funguje MySQL, znamená porozumieť databázam. Ak sa snažíte nasledovať vzor, ​​potom s najväčšou pravdepodobnosťou vývoj zlyhá. Nie je známe, čo je lepšie: v zásade neporozumieť DBMS alebo ho pochopiť nesprávne;

cena. Samotný systém správy databázy nemusí stáť veľa, ale údržba databázy, nákup softvéru tretích strán a iné. Dokonca umiestniť rozsiahlu databázu na dobrý hosting stojí peniaze.

váha. Samotné súbory pre vysoko funkčnú aplikáciu zavážia veľa. A ak ich zabalíte do databázy, objem sa výrazne zvýši, pretože teraz majú súbory nejaké funkcie, sú v logickom spojení a sú volané skriptami. To všetko stojí nielen peniaze, ale aj pamäť na serveri. Toto je obzvlášť viditeľné, ak je server Osobný počítač vývojár.

centralizované umiestnenie. Iba v posledné roky, vývojári začali používať distribuovaný register na ukladanie súborov. Keď sú súbory v rovnakej databáze, sú zraniteľné.

Našťastie väčšina z týchto nedostatkov je pokrytá výhodami DBMS. Ak sa programátorov webu spýtate, čo je lepšie: súbory alebo DBMS, odpoveď bude zrejmá. Systém otvára množstvo možností, ktoré nie sú dostupné pre žiadny súborový systém.

Po prvé, je to úspora pamäte. Aj keď samotný DBMS zaberá určité miesto, neumožňuje množenie nepotrebných informácií. Žiadna redundancia, žiadne duplicitné súbory. Zároveň sa týmto spôsobom ukladajú informácie, ktoré by mali byť uložené v prebytku. Ako sme povedali, ide o zložitý matematický model, ktorý je pre bežného vývojára ťažko pochopiteľný.

Je dôležité, aby sa DBMS vyhýbal dvojitým pravdám. Systém nezávisle vyberá prvky, ktoré poskytujú informácie rovnakého druhu a dbá na to, aby si navzájom neodporovali. Ukazuje sa, že pri rovnakom objeme dostane produkt oveľa väčšie množstvo informácií.

Systémy správy databáz zohrávajú dôležitú úlohu pri spoločnom vývoji. Je dosť ťažké poskytnúť skupinový prístup k stromu súborov pri dodržaní všetkých opatrení. Môžete však poskytnúť autorizovaný prístup do DBMS obmedzenému okruhu ľudí bez straty bezpečnostného systému.

JavaScript. Rýchly štart

Naučte sa základy JavaScriptu s praktickou ukážkou tvorby webovej aplikácie

Mimochodom, o bezpečnom skladovaní. Dnes je ťažké implementovať ukladanie dát lepšie ako s moderným DBMS. Implementácia DBA vám umožňuje určiť potrebné bezpečnostné opatrenia: čo by mohlo byť lepšie? Okrem toho sa denne vydávajú nové nástroje na ochranu databáz. Prístup je zvyčajne prostredníctvom oprašovania, ale s dostatkom zručností môžete implementovať všetko od antropometrie až po dvojfaktorovú autentifikáciu. Platí to najmä pre open-source DBMS, ktorým je MariaDB (viac o tom neskôr).

Je ťažké si predstaviť niečo lepšie z hľadiska zálohovania ako systémy na správu databáz. Ak aplikáciu ukladáte do súborov, bezpečnosť údajov leží vo vašich rukách. Ste nútení včas sa postarať o vytváranie záloh a potrebných kópií. DBMS to môže robiť v nastavených intervaloch a prenášať informácie na externé médiá alebo do cloudu.

MySQL: Zaslúžený úspech

Toto je určite najobľúbenejší zo všetkých existujúcich DBMS. Nielen webové aplikácie a komplexné softvér: účtovanie materiálov v knižnici vášho mesta je s najväčšou pravdepodobnosťou implementované prostredníctvom MySQL alebo MSSQL. Funkčnosť tohto systému núti konkurentov prichádzať s novými a novými riešeniami. Samotní vývojári však nezaostávajú: Najnovšia verzia Softvér bol práve vydaný. Svoju periodicitu neprerušili už viac ako dvadsať rokov.

Predtým bol tento vývoj vo vlastníctve Sun Microsystems, ktorý nám dal Javu a mnoho ďalších vývojových nástrojov. V roku 2010 boli všetky produkty spolu s MySQL prevedené na Oracle. DBMS udržiava dodnes.

v Systém bol pôvodne vyvinutý spoločnosťou s rovnakým názvom v roku 1995. Tvorcovia použili najrýchlejšie programovacie jazyky: C, C++ a HTML. Vývojári tak majú k dispozícii stabilný a rýchly DBMS s neustálou podporou. Dnes je MySQL súčasťou takzvaných "gentleman's suites", ktoré pozostávajú zo servera, databázy a skriptovacieho programovacieho jazyka.

Použiteľnosť možno nazvať jasnou výhodou MySQL oproti svojim konkurentom. Ako vždy, čím je softvér populárnejší, tým ľahšie sa s ním pracuje. Všetky chyby sú nájdené rýchlo, rovnako rýchlo a opravené. Nezabudnite, že ide o softvér pre programátorov a vývojárov, ktorý sa rýchlo rozvíja vďaka komunite. Neustále vychádzajú nové doplnky rôzne rozšírenia pre MySQL.

Inštalácia MySQL je veľmi jednoduchá. Vďaka prítomnosti GUI - GUI používateľ, to sa zmení na normálna inštalácia ON. To isté platí pre inštaláciu doplnkov do DBMS.

Nemožno nespomenúť, že MySQL je jedným z najviac multiplatformových DBMS. Je cítiť ruku Sunu, pre ktorý bolo spustenie softvéru „aspoň na kalkulačke“ prioritou. Čo povedať o škálovateľnosti: takmer všetky najväčšie zdroje, s ktorými v sieti pracujete, sú postavené na MySQL. Aj keď je ich viac profesionálne možnosti, napríklad PostgreSQL, na ktorý sme nezabudli.

"Maria" ako najlepšia v DBMS

Ako všetky open-source projekty, aj MySQL mal úspešný fork, ktorý sa volal MariaDB. Materská DBMS aj jej odnož nesú mená tvorcových dcér: Mu a Maria. Tento systém sa zvykne nazývať alternatívou k MySQL, ale toto je zásadne nesprávne tvrdenie. Hoci debata o tom, čo je lepšie, Maria alebo My, stále prebieha.

Cieľom vývojárov Maria bolo vytvoriť produkt, ktorý je plne kompatibilný s MySQL, no výrazne vylepšený. Napríklad nástroj na ukladanie údajov MySQL bol MyISAM. V Maria je to Aria, ktorá poskytla DBMS väčší výkon v porovnaní s hlavným projektom. A hoci je MariaDB založená na MySQL, najnovšie verzie neobsahujú viac ako 25 % pôvodného kódu.

Maria sa môže pochváliť lepším celkovým výkonom. To platí najmä pre konverziu postáv. Pri veľkom objeme informácií dosahuje koeficient viac ako 2 %. V porovnaní s MySQL je optimalizovaný aj ladiaci kód. Vo všeobecnosti poznamenávajú vývojári najvyššia rýchlosť rozvoj, ako by „rodič“ mohol vydať. Komunita za MariaDB sľubuje ešte viac vylepšení.

Navyše samotný používateľ môže Máriinu prácu zlepšovať a optimalizovať. To, čo odlišuje tento DBMS od všetkých ostatných, je plnohodnotný open-source: žiadne uzavreté prvky alebo moduly, všetko je k dispozícii. S kódom sa môžete hrať donekonečna, ako aj dávať návrhy na zmeny komunite, ktorá vyvíja MariaDB.

Vyhrajte nárok od Postgres

PostgreSQL je ďalší databázový systém, len nie relačný, ale objektovo relačný. To znamená, že užívateľ môže sám vytvárať objekty pre operácie, ktoré môžu obsahovať rôzne dáta. Je úplne zadarmo a najflexibilnejší. Niektorí vývojári označujú PostgreSQL za najprofesionálnejšie riešenie na trhu. Tento DBMS pochádza z neziskového univerzitného projektu vytvoreného v Berkeley s názvom Postgres. Tento systém sa vyvíjal dlhých osem rokov a je podporovaný dodnes.

Ako to už pri takýchto produktoch býva, ukázalo sa to „od programátorov pre programátorov“ – neuveriteľne funkčné, ale pre priemerného vývojára príliš náročné na zvládnutie. Spočiatku mal DBMS dokonca svoj vlastný dopytovací jazyk, no neskôr sa od tejto myšlienky upustilo a zostalo triviálne „pokračovanie“. Napriek nadšeniu nezávislých vývojárov nie je PostgreSQL taký dobrý, ako ho radi nazývajú. Doteraz sa problémové oblasti nachádzajú v zdrojovom kóde.

Pokiaľ ide o škálovateľnosť, PostgreSQL nie je horší v porovnaní s MySQL a MariaDB. Na základe tohto softvéru sú postavené projekty na spracovanie veľkých veľkých dát, pretože vývojári veria jeho stabilite. Niekoľko možností rozhrania sprístupňuje produkt na prispôsobenie.

PostgreSQL však ešte zďaleka nie je masovým produktom. Faktom je, že tento systém je pre jednoduchého vývojára príliš komplikovaný. Aj keď si zoberiete dokumentáciu, nedostanete odpovede na všetky otázky, vrátane tých najlogickejších. Tiež mätie rýchlosť vykonávania dotazov v PostgreSQL.

Tento DBMS je skvelý pre podnikové riešenia. Napríklad databázu pre IT firmu, kde sa o jej podporu môže postarať každý z vývojárov. PostgreSQL je navyše úplne zadarmo.

To je všetko, čo máme. Pamätajte, že v takých zložitých rozhodnutiach, ako je DBMS, je ťažké pomenovať lídra. Z hľadiska použitia je to MySQL, z hľadiska rozšíriteľnosti MariaDB a PostgreSQL. Hneď ako dostaneme produkt, ktorý sa stane všeliekom na všetky prípady, určite vám o ňom povieme.

JavaScript. Rýchly štart

Naučte sa základy JavaScriptu s praktickou ukážkou tvorby webovej aplikácie

A teraz je na výber DBMS na ukladanie základných údajov. Začal som s vývojom na MySQL, ale teraz si nie som istý, ktorý z nich si vybrať. Prechod na iný DBMS v tejto fáze pre mňa nebude problém (používam PDO). ďaleko od jasného chápania toho, čo sú „vysoké zaťaženia“ pre DBMS. Ide len o to, že podľa mojich výpočtov asi o rok bude základ veľmi vážny (pozri nižšie)

Hlavná voľba je medzi MySQL, PostgreSQL, MariaDB. Tiež možné, ale neodporúča sa Microsoft SQL Server na Windows Azure

Situácia je takáto:

  1. Neexistujú žiadne zložité otázky do databázy. Maximálny JOIN dvoch stolov
  2. B o Väčšina žiadostí je prečítaná
  3. Je tu jedna najdôležitejšia a „hlavná“ tabuľka (štruktúra tabuľky je pod spojlerom). Tabuľka sa denne rozrastie o cca 10-30 tisíc záznamov. Zápis údajov do tejto tabuľky je najdôležitejšia vec!
  4. B o Väčšina požiadaviek na čítanie bude smerovať do „hlavnej“ tabuľky. Táto tabuľka bude prehľadávaná podľa ktoréhokoľvek z polí (v extrémne zriedkavých prípadoch ~0,5 % - podľa niekoľkých polí naraz). Vyhľadávanie by malo byť vykonané rýchlo (napriek bodu č. 3)
  5. Indexy budú s najväčšou pravdepodobnosťou pridané do "hlavnej" tabuľky pre každé z polí pre dve polia naraz (ownerID a Field name, keďže ownerID bude zadané vo všetkých dotazoch). V ktoromkoľvek poli bude potrebné rýchle vyhľadávanie, ale toto nie je taká prioritná úloha. (Alebo je lepšie použiť Sphinx?)
  6. Leví podiel požiadaviek (~ 80 %) na čítanie do „hlavnej“ tabuľky je jednoduchý výber „s na indexoch od a personalID s limitom = 20. Zvyšné požiadavky na akékoľvek iné polia na indexoch (ktoré ešte nie sú) ownerID a Názov poľa, aj s limitom = 20
  7. K zmenám údajov v záznamoch „hlavnej“ tabuľky dôjde veľmi zriedkavo. Z tabuľky nebudú odstránené žiadne záznamy.
  8. Podpora transakcií a cudzích kľúčov je voliteľná
  9. Vyžaduje schopnosť replikovať dáta master-slave
  10. Vítaná je možnosť shardingu na úrovni DBMS
  11. Spoľahlivosť databázy je mimoriadne dôležitá (t. j. pád ako MyISAM s manuálne obnovenie okamžite zmizne)
  12. Do „hlavnej“ tabuľky je možné pridať nové polia. Toto je, samozrejme, extrémne zriedkavý výskyt a zďaleka nie najdôležitejšia požiadavka, ale pridanie nového stĺpca do tabuľky s veľkosťou desať GB pre MySQL je veľmi dlhý proces a naozaj sa mi nechce presúvať nové polia do samostatnej tabuľky
  13. Toto všetko sa najprv bude točiť na takomto dedikovanom serveri
  14. Ďalšie stoly budú rásť pomaly a prístup k nim bude dosť zriedkavý, o tie sa nebojím. Často aktualizované údaje sa točia v redis "e
Štruktúra "hlavnej" tabuľky VYTVORIŤ TABUĽKU, AK NEEXISTUJE `klienti` (`id` bigint(11) NOT NULL AUTO_INCREMENT, `personalID` int(11) NOT NULL, `ownerID` int(11) NOT NULL, `fromID` int(11) NOT NULL DEFAULT "4", `fromDomain` varchar(255) NOT NULL, `datetime` datetime NOT NULL, `status` int(11) NOT NULL DEFAULT "0", `paid` tinyint(1) NOT NULL DEFAULT "0", ` paymentType` tinyint(4) NOT NULL DEFAULT "1", `wmSum` float NOT NULL DEFAULT "0", `wmCommission` float NOT NULL DEFAULT "20", `sysNumber` varchar(14) NOT NULL, `sysNumberLastUpdate` časová pečiatka NOT NULL DEFAULT CURRENT_TIMESTAMP, `sysNumberStatus` varchar(250) NOT NULL, `timezone` float NOT NULL, `comment` varchar(500) NOT NULL, `countryID` int(11) NOT NULL, `postIndex` varchar(6) NOT NULL , `región` varchar(500) NOT NULL, `mesto` varchar(500) NOT NULL, `address` varchar(500) NOT NULL, `fio` varchar(500) NOT NULL, `phone` varchar(15) NOT NULL , `email` varchar(255) NOT NULL, `price` float NOT NULL, `quantity` int(11) NOT NULL DEFAULT "1", `label` v archar(30) NOT NULL, `tag` int(11) NOT NULL, `ip` varchar(15) NOT NULL, `referer` varchar(200) NOT NULL, PRIMARY KEY (`id`), KEY `from` ( `ownerID`,`fromID`), KEY `paid` (`zaplatené`), KEY `stav` (`stav`), KEY `label` (`label`), KEY `sysNumberLastUpdate` (`sysNumberLastUpdate`), KEY `personalID` (`ownerID`,`personalID`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

P.S. Tí, ktorí ma chcú poslať na google, prosím, ani neodpovedajú. Nájdite informácie porovnaním aktuálne verzie V rôznych DBMS som neuspel a študovať možnosti, výhody a nevýhody PostgreSQL, Microsoft SQL Server a MariaDB pre človeka, ktorý s nimi nepracoval, je veľmi dlhá úloha. Áno, a v MySQL mám ďaleko od odborníka a takýto veľký projekt je pre mňa novinkou a možnosti MySQL sa líšia od verzie k verzii. Jediné, čo viem s istotou je, že tabuľky typu MyISAM v MySQL mi určite nebudú fungovať.

  • Otázka položená pred viac ako 3 rokmi
  • 39797 videní

Pôvodnú verziu MySQL vyvinula fínsko-švédska spoločnosť MySQL AB, ktorú založili Jvid Achmark, Allan Larsson a Michael Monty. Prvá verzia MySQL sa objavila v roku 1995. Pôvodne bol určený na osobné použitie, no po niekoľkých rokoch sa zmenil na databázu na podnikovej úrovni.

V januári 2008 spoločnosť Sun Microsystems získala MySQL AB za 1 miliardu USD. Krátko nato Oracle kúpil Sun Microsystems s povolením Európskej komisie, ktorá sa spočiatku obávala, že takéto rozhodnutie poškodí bezplatný projekt MySQL, keďže išlo o priameho konkurenta databázy Oracle. Kvôli nedôvere v stratégiu vývoja MySQL bol vytvorený fork s názvom MariaDB.

Uplynuli roky a počas tejto doby sa MariaDB začala štandardne používať v mnohých distribúciách Linuxu. Používa sa na zabezpečenie chodu väčšiny internetových stránok. V tomto článku sa pokúsime porovnať MySQL vs MariaDB a zistiť, prečo je druhý lepší ako prvý a kedy je potrebný pôvodný MySQL.

Na rozdiel od mnohých iných open source projektov prijatých od Sun Microsystems, Oracle stále vyvíja MySQL. Po tom, čo veľa vývojárov odstúpilo, boli prijatí noví ľudia. Ale vývoj nových verzií MySQL je uzavretý. Zdroj je k dispozícii iba vývojovému tímu a do verejného úložiska sa nahrá až po dokončení práce. Všetky rozhodnutia sa prerokúvajú v rámci spoločnosti

MariaDB sa vyvíja úplne otvorene, o všetkých rozhodnutiach a nových nápadoch týkajúcich sa vývoja je možné voľne diskutovať v e-mailovom newsletteri, ako aj o systéme hlásenia chýb. Je veľmi jednoduché prispieť k vývoju MariaDB, záplaty od používateľov sú akceptované aj od vývojárov. Vo všeobecnosti sa MariaDB rozvíja aktívnejšie.

Kvôli brandingu má MySQL stále veľkú komunitu, no stále viac projektov sa presúva do MariaDB. Známe podnikové distribúcie ako REHL 7 a SLES 12 už využívajú MariaDB, čo znamená, že v súboji MySQL alebo MariaDB zvíťazí tá druhá.

2. Frekvencia uvoľňovania

Zásadou spoločnosti Oracle je vydávať bezpečnostné aktualizácie pre všetky svoje produkty každé tri mesiace. Ale cesta von Nová verzia MySQL je naplánované každé dva mesiace. To často vedie k tomu, že aktualizácie produktu a aktualizácie zabezpečenia nie sú synchronizované.

Vývojári nemajú čas uzavrieť všetky chybové hlásenia a zraniteľnosti, v dôsledku čoho môže databáza zostať zraniteľná aj niekoľko mesiacov. Ďalším problémom MySQL je, že bezpečnostné aktualizácie sú veľmi vágne. Ak administrátor nemôže jednoducho aktualizovať program na novú verziu, potom je vytvorenie backportu náročné.

MariaDB vydáva aktualizácie programov a bezpečnostné aktualizácie synchronizovane, takže všetky chyby sú opravené. Všetky opravené CVE sú zdokumentované a každý používateľ môže zistiť, čo sa v novej verzii zmenilo.

4. Vlastnosti a funkčnosť

Vo všeobecnosti sa MariaDB vyvíja rýchlejšie a má viac funkcií. Tieto funkcie sa týkajú optimalizácie, zlepšenej správy pamäte a oveľa viac. Zvyčajne sa tieto funkcie časom prenesú do MySQL. Napríklad rovnaká podpora GIS sa objavila v MariaDB pred MySQL. MariaDB má okrem iného veľa vylepšení výkonu pre Inodb, MyISAM a engine na spracovanie dotazov, podporuje GIS, elimináciu tabuliek, virtuálne a dynamické stĺpce, replikáciu viacerých zdrojov, roly a ďalšie.

Ale MariaDB má svoje nevýhody, nepodporuje niektoré funkcie, ktoré má MySQL. Totiž MariaDB nie je kompatibilný so syntaxou MySQL JSON, nie sú podporované pluginy ngram, MeCab, MySQL X a tiež tabuľkové priestory, ktoré umožňujú priraďovať údaje viacerým tabuľkám súčasne. Vývojári však aktívne pracujú na odstránení nedostatkov.

Pre tých, ktorí sa zaujímajú o klastre MySQL, bude zaujímavé, že MariaDB používa nový systém replikácia Galera, jej fungovanie je odlišné od štandardného master-salve. Galera sa vyvíja od roku 2007, ale nikdy nebola zahrnutá oficiálna verzia MySQL.

5. Podpora pre skladovacie motory

Systém správy databáz MariaDB podporuje oveľa viac motorov na ukladanie údajov. Väčšina z týchto motorov je k dispozícii ako pluginy pre MySQL, ale v MariaDB sú zahrnuté v oficiálnom vydaní. To znamená, že motory sú správne integrované a budú dobre fungovať. Tu je zoznam podporovaných motorov:

  • Aria;
  • XtraDB je vylepšená verzia InnoDB;
  • FederatedX je vylepšená verzia Federated;
  • OQGRAPH;
  • SphinxSE;
  • IBMDB2I;
  • TokuDB;
  • Cassandra;
  • PRIPOJIŤ;
  • SEQUENCE;
  • Pavúk;
  • ColumnStore;
  • MySIAM.

Pripomínam, že pôvodné MySQL štandardne podporuje iba tri typy tabuliek – Aria, MySIAM a InnoDB. Toto je dôležitý aspekt pri výbere MySQL alebo MariaDB.

6. Názov a číslovanie verzií

Tieto rozdiely medzi MariaDB a MySQL nie sú až také dôležité, ale možno budú niekoho zaujímať. Názov MySQL bol daný na počesť prvej dcéry jedného z vývojárov - Michaela Montyho, volá sa My. Vo vývoji MariaDB pokračoval ten istý človek a tentoraz bol program pomenovaný po jeho najmladšej dcére Márii.

Pokiaľ ide o verzie, pôvodne pred verziou 5.6 boli verzie MariaDB číslované synchrónne s verziami MySQL, na ktorých boli založené. Keď sa však nahromadilo dostatok zmien a za základ sa začal brať kód MariaDB, bolo zvykom zmeniť čísla verzií na 10. Od tohto momentu sa číslovanie MariaDB robí jediným spôsobom.

závery

V tomto článku sme porovnali MySQL vs MariaDB. Vo väčšine ohľadov je MariaDB oveľa lepšia ako MySQL, a preto ju väčšina distribúcií Linuxu teraz štandardne používa vo svojich úložiskách. Pôvodná verzia môže byť potrebná len vo veľmi zriedkavých prípadoch.