Weboldal keresés

15 hasznos MySQL/MariaDB teljesítményhangolási és -optimalizálási tipp


A MySQL egy hatékony, nyílt forráskódú Relációs adatbázis-kezelő rendszer vagy röviden RDBMS. Még 1995-ben adták ki (20 éves). A Strukturált lekérdezési nyelvet használja, amely valószínűleg a legnépszerűbb választás az adatbázison belüli tartalom kezelésére. A MySQL legújabb verziója az 5.6.25, és 2015. május 29-én adták ki.

Érdekes tény a MySQL-lel kapcsolatban, hogy a név Michael Widenius (a MySQL alkotója) lányától, a My-től származik. Noha rengeteg érdekes tény található a MySQL-ről, ennek a cikknek a célja néhány hasznos gyakorlat bemutatása a MySQL-kiszolgáló kezeléséhez.

2009 áprilisában az Oracle megvásárolta a MySQL projektet. Ennek eredményeként létrejött a MariaDB nevű MySQL közösségi fork. A villa létrehozásának fő oka az volt, hogy a projektet a General Public License alatt szabadon tartsák.

Ma a MySQL és a MariaDB az egyik leggyakrabban (ha nem a leggyakrabban) használt RDBMS, amelyet olyan webes alkalmazásokhoz használnak, mint a WordPress, Joomla, Magento és mások.

Ez a cikk néhány alapvető, de hasznos tippet mutat be, hogyan optimalizálhatja a MySQL/MariaDB teljesítményét. Ne feledje, hogy ez a cikk feltételezi, hogy a MySQL vagy a MariaDB már telepítve van. Ha továbbra is kíváncsi, hogyan telepítheti őket a rendszerére, kövesse az itt található részletes útmutatónkat:

  1. A LAMP telepítése RHEL/CentOS 7 rendszeren
  2. A LAMP telepítése Fedora 22-re
  3. A LAMP beállítása Ubuntu 15.04-en
  4. A MariaDB telepítése Debian 8-ra
  5. Telepítse a MariaDB-t Gentoo Linuxra
  6. Telepítse a MariaDB-t Arch Linuxra

Fontos: Mielőtt elkezdené, ne fogadja el vakon ezeket a javaslatokat. Minden MySQL-beállítás egyedi, és további átgondolást igényel, mielőtt bármilyen változtatást végrehajtana.

Amit tudnod kell:

  1. A MySQL/MariaDB konfigurációs fájl a /etc/my.cnf fájlban található. Minden alkalommal, amikor módosítja ezt a fájlt, újra kell indítania a MySQL szolgáltatást, hogy az új módosítások érvénybe léphessenek.
  2. A cikk megírásához a MySQL 5.6 verzióját használtuk sablonként.

1. Engedélyezze az InnoDB file-per-table funkciót

Először is fontos elmagyarázni, hogy az InnoDB egy tárolómotor. A MySQL és a MariaDB az InnoDB-t használja alapértelmezett tárolómotorként. A múltban a MySQL adatbázistáblákat és indexeket tartott a rendszer táblaterületén. Ez a megközelítés olyan szerverekhez készült, amelyek kizárólagos célja az adatbázis-feldolgozás, és a tárolólemezüket nem használják más célokra.

Az InnoDB rugalmasabb megközelítést biztosít, és minden adatbázis-információ egy .ibd adatfájlban tárolódik. Minden .ibd fájl egy saját táblaterületet képvisel. Így az adatbázis-műveletek, például a „TRUNCATE ” gyorsabban hajthatók végre, és egy adatbázistábla eldobásakor vagy csonkolásakor is visszanyerheti a fel nem használt területet.

A konfiguráció másik előnye, hogy egyes adatbázistáblázatokat külön tárolóeszközön tárolhat. Ez nagymértékben javíthatja a lemezek I/O terhelését.

Az innodb_file_per_table alapértelmezés szerint engedélyezve van a MySQL 5.6-os és újabb verzióiban. Ezt a /etc/my.cnf fájlban láthatja. Az irányelv így néz ki:

innodb_file_per_table=1

2. Tárolja a MySQL adatbázis adatait külön partíción

Megjegyzés: Ez a beállítás csak a MySQL-lel működik, a MariaDB-vel azonban nem.

Néha az operációs rendszer olvasása/írása lelassíthatja a MySQL-kiszolgáló teljesítményét, különösen, ha ugyanazon a merevlemezen található. Ehelyett külön merevlemez (lehetőleg SSD) használatát javasolnám a MySQL szolgáltatáshoz.

Ennek befejezéséhez csatlakoztatnia kell az új meghajtót a számítógépéhez/szerveréhez. Ebben a cikkben azt feltételezem, hogy a meghajtó a /dev/sdb alatt lesz.

A következő lépés az új meghajtó előkészítése:

fdisk /dev/sdb

Most nyomja meg az „n ” gombot az új partíció létrehozásához. Ezután nyomja meg a „p ” gombot, hogy az új partíció legyen elsődleges. Ezt követően állítsa be a partíció számát 1-től 4-ig. Ezután válassza ki a partíció méretét. Itt nyomja meg az entert. A következő lépésben be kell állítania a partíció méretét.

Ha a teljes lemezt szeretné használni, nyomja meg még egyszer az Enter billentyűt. Ellenkező esetben manuálisan beállíthatja az új partíció méretét. Ha készen áll, nyomja meg a „w ” gombot a módosítások beírásához. Most létre kell hoznunk egy fájlrendszert az új partíciónkhoz. Ez könnyen megtehető:

mkfs.ext4 /dev/sdb1

Most csatoljuk az új partíciónkat egy mappába. A mappámat „ssd”-nek neveztem el, és létrehoztam a gyökérkönyvtárban:

mkdir /ssd/

Készen állunk az új partíció csatlakoztatására az új mappába:

mount /dev/sdb1  /ssd/

A beillesztést indításkor hajthatja végre, ha hozzáadja a következő sort az /etc/fstab fájlhoz.

/dev/sdb1 /ssd ext3 defaults 0 0

Most készen áll a MySQL áthelyezésére az új lemezre. Először állítsa le a MySQL szolgáltatást a következővel:

service mysqld stop

Azt javaslom, hogy állítsa le az Apache/nginx-et is, hogy megakadályozza az adatbázisok írási kísérleteit:

service httpd stop
service nginx stop

Most másolja a teljes MySQL könyvtárat az új meghajtóba:

cp /var/lib/mysql /ssd/ -Rp

Ez a MySQL-adatbázisok helyétől függően eltarthat egy ideig. A folyamat befejezése után nevezze át a MySQL könyvtárat:

mv /var/lib/mysql /var/lib/mysql-backup

Ezután létrehozunk egy szimbolikus hivatkozást.

ln -s /ssd/mysql /var/lib/mysql

Most készen áll a MySQL és a webszolgáltatás elindítására:

service mysqld start
service httpd start
service nginx start

Ezen a ponton a MySQL-adatbázisok az új meghajtóról lesznek elérhetők.