Ejtsünk néhány szót az adatbázis szoftverről, hiszen biztosan sokaknál zavart okoz, hogy néhol a DirectAdmin MYSQL-ként hivatkozik a MariaDB-re.
De mi is a MariaDB?
A MariaDB a MySQL egy leválasztott (forkolt) és továbbfejlesztett változata, amelyet a MySQL eredeti fejlesztői készítettek. A fejlesztők 2009-ben a szétválás mellett döntöttek, amikor is a Oracle Corporation megvásárolta a MYSQL-t és fizetőssé tette annak bizonyos változatait. Jelenleg a MariaDB az egyik legnépszerűbb nyílt forráskódú SQL (Structured Query Language) relációs adatbázis-kezelő rendszer a világon. A tervezés alapját a sebesség, megbízhatóság és a könnyű használat adta. Számos beépített hatékony funkcióval és számos olyan használhatósági, biztonsági és teljesítménybeli fejlesztéssel érkezik, amelyeket nem talál meg a MySQL-ben.
A MariaDB fejlesztői a két alkalmazás között nagy fokú kompatibilitást biztosítottak, hogy az átjárhatóság megmaradjon.A MariaDB „drop-in helyettesítőként” működik, ami azt jelenti , hogy a MySQL szervert lecserélheti a MariaDB szerver analóg verziójára, miközben teljes mértékben kihasználhatja a MariaDB fejlesztéseit anélkül, hogy módosítania kellene az alkalmazás kódját. Ez a gyakorlatban azt is jelenti, hogy egy MYSQL-ből exportált adatbázis kompatibilis lesz a MariaDB-vel is.
A MariaDB saját verzió jelölést használ, amely a 10-es számtól indul.
Hogyan működik?
A MySQL-hez hasonlóan a MariaDB is kliens/szerver modellt használ, ahol is a kiszolgáló programban az ügyfélprogramoktól érkező kéréseket tárolja. A kliens/szerver számítógépes rendszerekre jellemző módon a kiszolgáló és az ügyfélprogramok különféle gazdagépeken lehetnek.
MariaDB vs. MySQL
1. Tárolómotorok
-
MariaDB: Támogatja a klasszikus MySQL tárolómotorokat, mint az InnoDB és MyISAM, de számos új tárolómotort is bevezetett, mint a ColumnStore, Aria, és a S3 motor, amelyeket nem találunk meg a MySQL-ben. Ezek speciális felhasználási esetekre nyújtanak megoldást, például nagy adatbázisok kezelésére.
-
MySQL: A tárolómotorok közül leginkább az InnoDB és MyISAM használatos. Néhány MariaDB specifikus motort, mint az Aria vagy a ColumnStore, a MySQL nem támogat.
2. Replikáció
-
MariaDB: Támogatja a galera cluster és a parallel replication (párhuzamos replikáció) funkciókat, amelyek lehetővé teszik a gyorsabb és megbízhatóbb adatátvitelt több szerver között. MariaDB-ben a replikáció további finomhangolási lehetőségeket kínál.
-
MySQL: Támogatja a GTID (Global Transaction Identifiers) alapú replikációt, valamint a párhuzamos replikációt. Az Enterprise verzióban további replikációs funkciók érhetők el.
3. Funkciók
-
MariaDB: Olyan új funkciókat vezetett be, mint a JSON_TABLE funkciók és a WINDOW függvények támogatása, amelyek segítik az összetett adatkérdezéseket és elemzést. Továbbá Atomic DDL műveleteket vezetett be, ami azt jelenti, hogy az adatdefiníciós műveletek atomiak (nem szakadnak meg, és nincs részleges végrehajtás).
-
MySQL: Szintén támogatja a JSON műveleteket és a Window Functions-t. A MySQL 8.x verziói jelentős fejlesztéseket hoztak az ilyen funkciók terén.
4. Teljesítmény
-
MariaDB: Különösen jól teljesít több táblás lekérdezések és bonyolult adatelemzési feladatok során. Az új InnoDB, valamint a MyRocks tárolómotorok optimalizálásával növeli a lekérdezési sebességet, és az adatbázis méretének csökkentésére is törekszik.
-
MySQL: Az új MySQL verziók, különösen a MySQL 8.x, jelentős teljesítménynövekedést mutatnak a párhuzamos feldolgozás és a buffer kezelése terén. Az optimalizációk azonban főleg az InnoDB motorra összpontosítanak, amely alapértelmezett tárolómotor.
5. Gyorsítótárazás:
- MariaDB:
- InnoDB Buffer Pool: A MariaDB, mint a MySQL, szintén az InnoDB motorra alapozza az adatkezelést. Az InnoDB buffer pool a memória gyorsítótárazásának fő része, amely a leggyakrabban használt adatokat és indexeket tárolja. A MariaDB-ben optimalizált beállítások érhetők el a buffer pool hatékony kezelésére.
- Cache hit arány: A MariaDB lehetővé teszi a query cache finomhangolását, hogy az újrahasznált lekérdezések gyorsítótárból történő kiszolgálása hatékonyabb legyen. A query cache használata a MariaDB-ben továbbra is támogatott, míg a MySQL eltávolította ezt a funkciót a 8.0 verziótól kezdve.
- Aria tárolómotor: Az Aria motor a MariaDB-ben hasonló gyorsítótárazási technikákat alkalmaz, mint a MySQL MyISAM motorja, de nagyobb rugalmasságot biztosít a lemezről történő olvasási sebesség növelésére.
- MySQL:
- InnoDB Buffer Pool: A MySQL szintén az InnoDB buffer poolt használja, de a MySQL 8.x verziókban továbbfejlesztették a threaded flushing és a parallel read/write műveleteket, amelyek jobban kihasználják a modern szerverek többmagos processzorait.
- Query Cache eltávolítása: A MySQL 8.0 verziójában a query cache funkciót eltávolították, mivel annak használata több esetben teljesítménybeli hátrányokat okozott. Ehelyett a Performance Schema és az Optimizer lett fejlesztve a lekérdezések jobb optimalizálása érdekében.
6. Indexelés:
- MariaDB:
- InnoDB és MyRocks támogatás: A MariaDB 10.6 az InnoDB mellett támogatja a MyRocks tárolómotort is, amely kifejezetten nagy adatbázisok és gyors írási műveletek kezelésére optimalizált. A MyRocks tömörített indexeket használ, ami csökkenti a tárolási igényeket és növeli a lekérdezési sebességet.
- Több indexelési típus: A MariaDB támogatja az InnoDB-n belüli hagyományos B-fa indexek mellett a hash indexelést is. Ez lehetővé teszi, hogy különböző típusú indexeket használj a lekérdezési igényeknek megfelelően.
- MySQL:
- Invisible Indexek: A MySQL 8.0 új funkciója az „invisible indexes”, amelyek lehetővé teszik, hogy ideiglenesen kikapcsolj egy indexet anélkül, hogy törölnéd. Ez lehetővé teszi az indexek teljesítményének tesztelését vagy az adatbázis finomhangolását.
- Functional Indexek: A MySQL 8.x verzióban új funkcióként jelent meg a funkcionális indexek használata, amelyek lehetővé teszik, hogy közvetlenül kifejezésekre hozz létre indexeket, nem csak oszlopokra. Ez különösen hasznos a komplex lekérdezések gyorsításában.
7. Licencelés
-
MariaDB: Teljesen nyílt forráskódú, GPL licenc alatt áll, ami azt jelenti, hogy bárki szabadon letöltheti, használhatja és módosíthatja a forráskódot.
-
MySQL: A MySQL közösségi verziója szintén nyílt forráskódú (GPL), de az Enterprise verzió zárt forráskódú és kereskedelmi licenchez kötött, amelyben további prémium funkciók érhetők el, például adatmaszkolás és további biztonsági funkciók.
8. Támogatás
-
MariaDB: Hosszú távú támogatást (LTS) kínál, amely biztosítja, hogy a verzió évekig támogatott és biztonsági frissítéseket kap. A MariaDB alapítvány közösségi és vállalati szintű támogatást is nyújt.
-
MySQL: A MySQL szintén hosszú távú támogatást nyújt a fontosabb verziókhoz, de az Enterprise kiadás magas szintű, kereskedelmi támogatást biztosít külön díj ellenében.
9. Biztonsági funkciók
-
MariaDB: Támogatja a data-at-rest titkosítást, valamint számos további biztonsági funkciót, mint például a felhasználói hitelesítés és jogosultságok széleskörű kezelése.
-
MySQL: A MySQL Enterprise verziója tartalmaz prémium biztonsági funkciókat, mint az adatmaszkolás és auditálás. A közösségi kiadás is kínál megfelelő biztonsági funkciókat, például titkosítást és felhasználói jogosultságkezelést.
Összegzés:
-
MariaDB: Előnyös választás, ha ingyenes és nyílt forráskódú megoldásra van szükséged, amely kiváló teljesítményt, új tárolómotorokat és fejlett replikációs funkciókat kínál. A hosszú távú támogatás (LTS) és az új fejlesztések, például a JSON és a Window Functions használata miatt különösen vonzó.
-
MySQL: Az iparági szabványként széles körben elterjedt, és stabil alapot nyújt a legtöbb alkalmazáshoz. Az Enterprise verzió további funkciókat kínál azok számára, akik extra biztonsági és teljesítménybeli funkciókat igényelnek.
Ejtsünk néhány szót az adatbázis szoftverről, hiszen biztosan sokaknál zavart okoz, hogy néhol a DirectAdmin MYSQL-ként hivatkozik a MariaDB-re.
De mi is a MariaDB?
A MariaDB a MySQL egy leválasztott (forkolt) és továbbfejlesztett változata, amelyet a MySQL eredeti fejlesztői készítettek. A fejlesztők 2009-ben a szétválás mellett döntöttek, amikor is a Oracle Corporation megvásárolta a MYSQL-t és fizetőssé tette annak bizonyos változatait. Jelenleg a MariaDB az egyik legnépszerűbb nyílt forráskódú SQL (Structured Query Language) relációs adatbázis-kezelő rendszer a világon. A tervezés alapját a sebesség, megbízhatóság és a könnyű használat adta. Számos beépített hatékony funkcióval és számos olyan használhatósági, biztonsági és teljesítménybeli fejlesztéssel érkezik, amelyeket nem talál meg a MySQL-ben.
A MariaDB fejlesztői a két alkalmazás között nagy fokú kompatibilitást biztosítottak, hogy az átjárhatóság megmaradjon.A MariaDB „drop-in helyettesítőként” működik, ami azt jelenti , hogy a MySQL szervert lecserélheti a MariaDB szerver analóg verziójára, miközben teljes mértékben kihasználhatja a MariaDB fejlesztéseit anélkül, hogy módosítania kellene az alkalmazás kódját. Ez a gyakorlatban azt is jelenti, hogy egy MYSQL-ből exportált adatbázis kompatibilis lesz a MariaDB-vel is.
A MariaDB saját verzió jelölést használ, amely a 10-es számtól indul.
Hogyan működik?
A MySQL-hez hasonlóan a MariaDB is kliens/szerver modellt használ, ahol is a kiszolgáló programban az ügyfélprogramoktól érkező kéréseket tárolja. A kliens/szerver számítógépes rendszerekre jellemző módon a kiszolgáló és az ügyfélprogramok különféle gazdagépeken lehetnek.
MariaDB vs. MySQL
1. Tárolómotorok
-
MariaDB 10.6: Támogatja a klasszikus MySQL tárolómotorokat, mint az InnoDB és MyISAM, de számos új tárolómotort is bevezetett, mint a ColumnStore, Aria, és a S3 motor, amelyeket nem találunk meg a MySQL-ben. Ezek speciális felhasználási esetekre nyújtanak megoldást, például nagy adatbázisok kezelésére.
-
MySQL: A tárolómotorok közül leginkább az InnoDB és MyISAM használatos. Néhány MariaDB specifikus motort, mint az Aria vagy a ColumnStore, a MySQL nem támogat.
2. Replikáció
-
MariaDB 10.6: Támogatja a galera cluster és a parallel replication (párhuzamos replikáció) funkciókat, amelyek lehetővé teszik a gyorsabb és megbízhatóbb adatátvitelt több szerver között. MariaDB-ben a replikáció további finomhangolási lehetőségeket kínál.
-
MySQL: Támogatja a GTID (Global Transaction Identifiers) alapú replikációt, valamint a párhuzamos replikációt. Az Enterprise verzióban további replikációs funkciók érhetők el.
3. Funkciók
-
MariaDB 10.6: Olyan új funkciókat vezetett be, mint a JSON_TABLE funkciók és a WINDOW függvények támogatása, amelyek segítik az összetett adatkérdezéseket és elemzést. Továbbá Atomic DDL műveleteket vezetett be, ami azt jelenti, hogy az adatdefiníciós műveletek atomiak (nem szakadnak meg, és nincs részleges végrehajtás).
-
MySQL: Szintén támogatja a JSON műveleteket és a Window Functions-t. A MySQL 8.x verziói jelentős fejlesztéseket hoztak az ilyen funkciók terén.
4. Teljesítmény
-
MariaDB 10.6: Különösen jól teljesít több táblás lekérdezések és bonyolult adatelemzési feladatok során. Az új InnoDB, valamint a MyRocks tárolómotorok optimalizálásával növeli a lekérdezési sebességet, és az adatbázis méretének csökkentésére is törekszik.
-
MySQL: Az új MySQL verziók, különösen a MySQL 8.x, jelentős teljesítménynövekedést mutatnak a párhuzamos feldolgozás és a buffer kezelése terén. Az optimalizációk azonban főleg az InnoDB motorra összpontosítanak, amely alapértelmezett tárolómotor.
5. Gyorsítótárazás:
- MariaDB 10.6:
- InnoDB Buffer Pool: A MariaDB, mint a MySQL, szintén az InnoDB motorra alapozza az adatkezelést. Az InnoDB buffer pool a memória gyorsítótárazásának fő része, amely a leggyakrabban használt adatokat és indexeket tárolja. A MariaDB-ben optimalizált beállítások érhetők el a buffer pool hatékony kezelésére.
- Cache hit arány: A MariaDB lehetővé teszi a query cache finomhangolását, hogy az újrahasznált lekérdezések gyorsítótárból történő kiszolgálása hatékonyabb legyen. A query cache használata a MariaDB-ben továbbra is támogatott, míg a MySQL eltávolította ezt a funkciót a 8.0 verziótól kezdve.
- Aria tárolómotor: Az Aria motor a MariaDB-ben hasonló gyorsítótárazási technikákat alkalmaz, mint a MySQL MyISAM motorja, de nagyobb rugalmasságot biztosít a lemezről történő olvasási sebesség növelésére.
- MySQL:
- InnoDB Buffer Pool: A MySQL szintén az InnoDB buffer poolt használja, de a MySQL 8.x verziókban továbbfejlesztették a threaded flushing és a parallel read/write műveleteket, amelyek jobban kihasználják a modern szerverek többmagos processzorait.
- Query Cache eltávolítása: A MySQL 8.0 verziójában a query cache funkciót eltávolították, mivel annak használata több esetben teljesítménybeli hátrányokat okozott. Ehelyett a Performance Schema és az Optimizer lett fejlesztve a lekérdezések jobb optimalizálása érdekében.
6. Indexelés:
- MariaDB 10.6:
- InnoDB és MyRocks támogatás: A MariaDB 10.6 az InnoDB mellett támogatja a MyRocks tárolómotort is, amely kifejezetten nagy adatbázisok és gyors írási műveletek kezelésére optimalizált. A MyRocks tömörített indexeket használ, ami csökkenti a tárolási igényeket és növeli a lekérdezési sebességet.
- Több indexelési típus: A MariaDB támogatja az InnoDB-n belüli hagyományos B-fa indexek mellett a hash indexelést is. Ez lehetővé teszi, hogy különböző típusú indexeket használj a lekérdezési igényeknek megfelelően.
- MySQL:
- Invisible Indexek: A MySQL 8.0 új funkciója az „invisible indexes”, amelyek lehetővé teszik, hogy ideiglenesen kikapcsolj egy indexet anélkül, hogy törölnéd. Ez lehetővé teszi az indexek teljesítményének tesztelését vagy az adatbázis finomhangolását.
- Functional Indexek: A MySQL 8.x verzióban új funkcióként jelent meg a funkcionális indexek használata, amelyek lehetővé teszik, hogy közvetlenül kifejezésekre hozz létre indexeket, nem csak oszlopokra. Ez különösen hasznos a komplex lekérdezések gyorsításában.
5. Licencelés
-
MariaDB 10.6: Teljesen nyílt forráskódú, GPL licenc alatt áll, ami azt jelenti, hogy bárki szabadon letöltheti, használhatja és módosíthatja a forráskódot.
-
MySQL: A MySQL közösségi verziója szintén nyílt forráskódú (GPL), de az Enterprise verzió zárt forráskódú és kereskedelmi licenchez kötött, amelyben további prémium funkciók érhetők el, például adatmaszkolás és további biztonsági funkciók.
6. Támogatás
-
MariaDB 10.6: Hosszú távú támogatást (LTS) kínál, amely biztosítja, hogy a verzió évekig támogatott és biztonsági frissítéseket kap. A MariaDB alapítvány közösségi és vállalati szintű támogatást is nyújt.
-
MySQL: A MySQL szintén hosszú távú támogatást nyújt a fontosabb verziókhoz, de az Enterprise kiadás magas szintű, kereskedelmi támogatást biztosít külön díj ellenében.
7. Biztonsági funkciók
-
MariaDB 10.6: Támogatja a data-at-rest titkosítást, valamint számos további biztonsági funkciót, mint például a felhasználói hitelesítés és jogosultságok széleskörű kezelése.
-
MySQL: A MySQL Enterprise verziója tartalmaz prémium biztonsági funkciókat, mint az adatmaszkolás és auditálás. A közösségi kiadás is kínál megfelelő biztonsági funkciókat, például titkosítást és felhasználói jogosultságkezelést.
Összegzés:
-
MariaDB 10.6: Előnyös választás, ha ingyenes és nyílt forráskódú megoldásra van szükséged, amely kiváló teljesítményt, új tárolómotorokat és fejlett replikációs funkciókat kínál. A hosszú távú támogatás (LTS) és az új fejlesztések, például a JSON és a Window Functions használata miatt különösen vonzó.
-
MySQL: Az iparági szabványként széles körben elterjedt, és stabil alapot nyújt a legtöbb alkalmazáshoz. Az Enterprise verzió további funkciókat kínál azok számára, akik extra biztonsági és teljesítménybeli funkciókat igényelnek.
MariaDB | MySQL | |
Tároló motorok | Támogatja a klasszikus MySQL tárolómotorokat, mint az InnoDB és MyISAM, de számos új tárolómotort is bevezetett, mint a ColumnStore, Aria, és a S3 motor, amelyeket nem találunk meg a MySQL-ben. Ezek speciális felhasználási esetekre nyújtanak megoldást, például nagy adatbázisok kezelésére. | A tárolómotorok közül leginkább az InnoDB és MyISAM használatos. Néhány MariaDB specifikus motort, mint az Aria vagy a ColumnStore, a MySQL nem támogat. |
Sebesség | Különösen jól teljesít több táblás lekérdezések és bonyolult adatelemzési feladatok során. Az új InnoDB, valamint a MyRocks tárolómotorok optimalizálásával növeli a lekérdezési sebességet, és az adatbázis méretének csökkentésére is törekszik. | Az új MySQL verziók, különösen a MySQL 8.x, jelentős teljesítménynövekedést mutatnak a párhuzamos feldolgozás és a buffer kezelése terén. Az optimalizációk azonban főleg az InnoDB motorra összpontosítanak, amely alapértelmezett tárolómotor. |
Gyorsabb gyorsítótár/indexek | A MariaDB memóriatároló motorjával az INSERT utasítás 24%-kal gyorsabban teljesíthető, mint a szabványos MySQL-ben. | A MySQL memóriatároló motorja lassabb, mint a MariaDB. |
Csatlakozás | A MariaDB fejlett szálkészlettel rendelkezik, amely gyorsabban fut, és akár 200 000+ kapcsolatot is támogat. | A MySQL által biztosított szálkészlet nem tud egyszerre 200 000 kapcsolatot támogatni. |
Továbbfejlesztett replikáció | MariaDB 10.6: Támogatja a galera cluster és a parallel replication (párhuzamos replikáció) funkciókat, amelyek lehetővé teszik a gyorsabb és megbízhatóbb adatátvitelt több szerver között. MariaDB-ben a replikáció további finomhangolási lehetőségeket kínál. | Támogatja a GTID (Global Transaction Identifiers) alapú replikációt, valamint a párhuzamos replikációt. Az Enterprise verzióban további replikációs funkciók érhetők el. |
Új funkciók/bővítmények | Olyan új funkciókat vezetett be, mint a JSON_TABLE funkciók és a WINDOW függvények támogatása, amelyek segítik az összetett adatkérdezéseket és elemzést. Továbbá Atomic DDL műveleteket vezetett be, ami azt jelenti, hogy az adatdefiníciós műveletek atomiak (nem szakadnak meg, és nincs részleges végrehajtás). | Szintén támogatja a JSON műveleteket és a Window Functions-t. A MySQL 8.x verziói jelentős fejlesztéseket hoztak az ilyen funkciók terén. |
Biztonsági Funkciók | Támogatja a data-at-rest titkosítást, valamint számos további biztonsági funkciót, mint például a felhasználói hitelesítés és jogosultságok széleskörű kezelése. | A MySQL Enterprise verziója tartalmaz prémium biztonsági funkciókat, mint az adatmaszkolás és auditálás. A közösségi kiadás is kínál megfelelő biztonsági funkciókat, például titkosítást és felhasználói jogosultságkezelést. |
Hiányzó funkciók | A MariaDB-ből hiányzik a MySQL Enterprise kiadás által biztosított néhány szolgáltatás. Ennek megoldására alternatív nyílt forráskódú beépülő modulokat kínál. | A MySQL vállalati kiadása védett kódot használ. Csak a MySQL Enterprise Edition felhasználói férhetnek hozzá. |
Adatmaszkolás | Nem | Igen |
Dinamikus oszlopok | Nem | Igen |