15 hyödyllistä MySQL/MariaDB-suorituskyvyn viritys- ja optimointivinkkiä


MySQL on tehokas avoimen lähdekoodin relaatiotietokannan hallintajärjestelmä tai lyhyesti sanottuna RDBMS. Se julkaistiin vuonna 1995 (20 vuotta vanha). Se käyttää strukturoitua kyselykieltä, joka on todennäköisesti suosituin valinta tietokannan sisällön hallintaan. Viimeisin MySQL-versio on 5.6.25 ja julkaistiin 29. toukokuuta 2015.

Mielenkiintoinen tosiasia MySQL: stä on se, että nimi tulee Michael Wideniuksen (MySQL: n luoja) tyttäreltä My. Vaikka MySQL: stä löytyy paljon mielenkiintoisia faktoja, tämän artikkelin on tarkoitus näyttää sinulle hyödyllisiä käytäntöjä, jotka auttavat sinua hallitsemaan MySQL-palvelinta.

Oracle osti huhtikuussa 2009 MySQL-projektin. Tuloksena luotiin MySQL-yhteisöhaarukka nimeltä MariaDB. Tärkein syy haarukan luomiseen oli pitää projekti vapaana General Public License -lisenssillä.

Nykyään MySQL ja MariaDB ovat yksi (jos ei eniten) useimmin käytetyistä RDBMS-järjestelmistä, joita käytetään verkkosovelluksissa, kuten WordPress, Joomla, Magento ja muissa.

Tässä artikkelissa on joitain perustavanlaatuisia, mutta hyödyllisiä vinkkejä siitä, miten voit optimoida MySQL/MariaDB: n suorituskyvyn. Muista, että tässä artikkelissa oletetaan, että sinulla on jo MySQL tai MariaDB asennettuna. Jos mietit edelleen, kuinka ne asennetaan järjestelmään, voit seurata kattavia oppaitamme täällä:

  1. LAMPin asentaminen RHEL/CentOS 7: een
  2. LAMP: n asentaminen Fedora 22: een
  3. LAMP: n määrittäminen Ubuntu 15.04: ssä
  4. MariaDB: n asentaminen Debian 8: een
  5. Asenna MariaDB Gentoo Linuxiin
  6. Asenna MariaDB Arch Linuxiin

Tärkeää: Ennen kuin aloitamme - älä hyväksy näitä ehdotuksia sokeasti. Jokainen MySQL-asennus on ainutlaatuinen ja vaatii lisäajattelua ennen muutosten tekemistä.

Asiat, jotka sinun on tiedettävä:

  1. MySQL/MariaDB-määritystiedosto sijaitsee osoitteessa /etc/my.cnf . Joka kerta, kun muokkaat tätä tiedostoa, sinun on käynnistettävä MySQL-palvelu uudelleen, jotta uudet muutokset voivat tulla voimaan.
  2. Tämän artikkelin kirjoittamisessa MySQL-versiota 5.6 on käytetty mallina.

1. Ota InnoDB-tiedosto taulukkoa kohti käyttöön

Ensin on tärkeää selittää, että InnoDB on varastointimoottori. MySQL ja MariaDB käyttävät InnoDB: tä oletustallennusmoottorina. Aikaisemmin MySQL käytti tietokantataulukoiden ja hakemistojen pitämistä järjestelmätaulukossa. Tämä lähestymistapa oli tarkoitettu palvelimille, joiden ainoa tarkoitus on tietokantojen käsittely, eikä niiden tallennuslevyä käytetä muihin tarkoituksiin.

InnoDB tarjoaa joustavamman lähestymistavan, ja jokainen tietokantatieto säilytetään .ibd -tiedostossa. Jokainen .ibd-tiedosto edustaa omaa taulukotilaa. Tällä tavalla tietokantatoiminnot, kuten “TRUNCATE”, voidaan suorittaa nopeammin, ja voit myös vaatia käyttämättömän tilan, kun pudotat tai katkaiset tietokantataulukon.

Tämän kokoonpanon toinen etu on se, että voit pitää joitain tietokantataulukoita erillisessä tallennuslaitteessa. Tämä voi parantaa huomattavasti levyjen I/O-kuormitusta.

Innodb_file_per_table on oletuksena käytössä MySQL 5.6: ssa ja uudemmissa. Voit nähdä sen tiedostossa /etc/my.cnf. Direktiivi näyttää tältä:

innodb_file_per_table=1

2. Tallenna MySQL-tietokantatiedot erilliseen osioon

Huomaa: Tämä asennus toimii vain MySQL: n kanssa, mutta ei MariaDB: n kanssa.

Joskus käyttöjärjestelmän lukeminen/kirjoittaminen voi hidastaa MySQL-palvelimesi suorituskykyä, varsinkin jos se sijaitsee samalla kiintolevyllä. Sen sijaan suosittelen erillisen kiintolevyn (mieluiten SSD) käyttöä MySQL-palvelulle.

Tämän suorittamiseksi sinun on liitettävä uusi asema tietokoneeseen/palvelimeen. Tätä artikkelia varten oletan, että asema on alle/dev/sdb.

Seuraava askel on uuden aseman valmistelu:

# fdisk /dev/sdb

Luo uusi osio painamalla nyt ”n”. Paina seuraavaksi “p” tehdäksesi uudesta osiosta ensisijaisen. Aseta sen jälkeen osion numero väliltä 1-4. Sen jälkeen valitset osion koon. Paina Enter-näppäintä. Seuraavassa vaiheessa sinun on määritettävä osion koko.

Jos haluat käyttää koko levyä, paina Enter-näppäintä vielä kerran. Muussa tapauksessa voit määrittää uuden osion koon manuaalisesti. Kun olet valmis, kirjoita muutokset painamalla “w”. Nyt meidän on luotava tiedostojärjestelmä uudelle osiollemme. Tämä voidaan tehdä helposti:

# mkfs.ext4 /dev/sdb1

Nyt asennamme uuden osion kansioon. Olen nimittänyt kansioni ssd: ksi ja luonut juurihakemistoon:

# mkdir /ssd/

Olemme valmiita asentamaan juuri tekemämme uuden osion uuteen kansioon:

# mount /dev/sdb1  /ssd/

Voit suorittaa asennuksen käynnistyksen yhteydessä lisäämällä seuraavan rivin tiedostoon/etc/fstab.

/dev/sdb1 /ssd ext3 defaults 0 0

Nyt olet valmis siirtämään MySQL: n uudelle levylle. Pysäytä ensin MySQL-palvelu seuraavilla tavoilla:

# service mysqld stop

Suosittelen, että lopetat myös Apache/nginxin, jotta estetään kaikki yritykset kirjoittaa tietokantoihin:

# service httpd stop
# service nginx stop

Kopioi nyt koko MySQL-hakemisto uuteen asemaan:

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

Tämä voi kestää jonkin aikaa MySQL-tietokantojesi sijainnista riippuen. Kun tämä prosessi on valmis, nimeä MySQL-hakemisto uudelleen:

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

Seuraavaksi luomme symlinkin.

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

Nyt olet valmis aloittamaan MySQL- ja verkkopalvelun:

# service mysqld start
# service httpd start
# service nginx start

Tässä vaiheessa MySQL-tietokantoihisi pääsee uudelta asemalta.