15 kasulikku MySQL/MariaDB jõudluse häälestamise ja optimeerimise nõuannet


MySQL on võimas avatud lähtekoodiga relatsioonide andmebaaside haldussüsteem või lühidalt RDBMS. See ilmus tagasi 1995. aastal (20 aastat vana). See kasutab struktureeritud päringukeelt, mis on ilmselt kõige populaarsem valik andmebaasi sisu haldamiseks. Uusim MySQL-i versioon on 5.6.25 ja see ilmus 29. mail 2015.

Huvitav fakt MySQL-i kohta on asjaolu, et nimi pärineb Michael Wideniuse (MySQL-i looja) tütrelt My. Kuigi MySQL-i kohta on palju huvitavaid fakte, on see artikkel mõeldud selleks, et näidata teile kasulikke tavasid, mis aitavad teil MySQL-i serverit hallata.

2009. aasta aprillis ostis Oracle MySQL-i projekti. Selle tulemusena loodi MySQL-i kogukonna haru nimega MariaDB. Kahvli loomise peamine põhjus oli projekti tasuta hoidmine üldise avaliku litsentsi alusel.

Täna on MySQL ja MariaDB üks kõige sagedamini (kui mitte kõige sagedamini) kasutatavaid RDBMS-e, mida kasutatakse veebirakendustes nagu WordPress, Joomla, Magento jt.

See artikkel näitab teile mõningaid põhilisi, kuid kasulikke näpunäiteid, kuidas optimeerida MySQL/MariaDB jõudlust. Pidage meeles, et see artikkel eeldab, et teil on juba installitud MySQL või MariaDB. Kui te ei tea veel, kuidas neid oma süsteemi installida, võite järgida meie ulatuslikke juhendeid siin:

  1. LAMP-i installimine RHEL/CentOS 7-le
  2. LAMP-i installimine Fedora 22-le
  3. LAMP-i seadistamine Ubuntu 15.04-s
  4. MariaDB installimine Debian 8-sse
  5. Installige MariaDB Gentoo Linuxi
  6. Installige MariaDB Arch Linuxi

Tähtis: enne alustamist - ärge võtke neid ettepanekuid pimesi vastu. Iga MySQL-i seadistus on ainulaadne ja nõuab enne muudatuste tegemist täiendavat läbimõtlemist.

Asjad, mida peate teadma:

  1. MySQL/MariaDB konfiguratsioonifail asub kaustas /etc/my.cnf . Iga kord, kui muudate seda faili, peate taaskäivitama teenuse MySQL, et uued muudatused saaksid jõustuda.
  2. Selle artikli kirjutamiseks on mallina kasutatud MySQL-i versiooni 5.6.

1. Lubage InnoDB fail tabeli kohta

Kõigepealt on oluline selgitada, et InnoDB on salvestusmootor. MySQL ja MariaDB kasutavad vaikemälumootorina InnoDB-d. Varem kasutas MySQL andmebaasitabelite ja indeksite hoidmiseks süsteemi tabeliruumis. See lähenemine oli mõeldud serverite jaoks, mille ainus eesmärk on andmebaasi töötlemine ja nende salvestusketast ei kasutata muudel eesmärkidel.

InnoDB pakub paindlikumat lähenemist ja iga andmebaasiinfot hoitakse andmefailis .ibd . Iga .ibd-fail tähistab omaette tabeliruumi. Nii saab andmebaasi toiminguid, näiteks\"TRUNCATE", kiiremini lõpule viia. Samuti võite andmebaasi tabeli kukutamisel või kärpimisel kasutamata ruumi tagasi saada.

Selle konfiguratsiooni teine eelis on asjaolu, et saate mõnda andmebaasitabelit hoida eraldi salvestusseadmes. See võib teie ketaste sisend-/väljundkoormust oluliselt parandada.

Innodb_file_per_table on MySQL 5.6 ja uuemates versioonides vaikimisi lubatud. Seda näete failis /etc/my.cnf. Direktiiv näeb välja selline:

innodb_file_per_table=1

2. Salvestage MySQL-i andmebaasiandmed eraldi partitsioonile

Märkus. See seadistus töötab ainult MySQL-iga, kuid mitte MariaDB-ga.

Mõnikord võib operatsioonisüsteemi lugemine/kirjutamine aeglustada teie MySQL-serveri toimimist, eriti kui see asub samal kõvakettal. Selle asemel soovitaksin MySQL-teenuse jaoks kasutada eraldi kõvaketast (eelistatavalt SSD-d).

Selle lõpuleviimiseks peate uue draivi oma arvutisse/serverisse kinnitama. Selle artikli jaoks eeldan, et draiv on/dev/sdb all.

Järgmine samm on uue draivi ettevalmistamine:

# fdisk /dev/sdb

Uue sektsiooni loomiseks vajutage nüüd nuppu\"n". Järgmise vajutage nuppu\"p", et muuta uus sektsioon esmaseks. Pärast seda määrake partitsiooni number vahemikus 1-4. Pärast seda valite partitsiooni suuruse. Vajutage siin sisestusklahvi. Järgmisel sammul peate konfigureerima partitsiooni suuruse.

Kui soovite kasutada kogu ketast, vajutage veel kord sisestusklahvi. Vastasel juhul saate uue sektsiooni suuruse käsitsi määrata. Kui olete valmis, vajutage muudatuste kirjutamiseks\"w". Nüüd peame oma uue partitsiooni jaoks looma failisüsteemi. Seda saab hõlpsalt teha järgmisega:

# mkfs.ext4 /dev/sdb1

Nüüd ühendame oma uue partitsiooni kausta. Olen nimetanud oma kausta\"ssd \" ja loonud juurkataloogi:

# mkdir /ssd/

Oleme valmis just loodud uue partitsiooni uude kausta ühendama:

# mount /dev/sdb1  /ssd/

Ühenduse saate käivitamisel käivitada, lisades järgmise rea faili/etc/fstab.

/dev/sdb1 /ssd ext3 defaults 0 0

Nüüd olete valmis MySQL-i uuele kettale teisaldama. Esmalt peatage MySQL-teenus järgmiselt:

# service mysqld stop

Soovitaksin teil ka Apache/nginx peatada, et vältida katseid kirjutada andmebaasidesse:

# service httpd stop
# service nginx stop

Nüüd kopeerige kogu MySQL-i kataloog uude draivi:

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

See võib võtta aega, olenevalt teie MySQL-i andmebaaside saidist. Kui see protsess on lõpule viidud, nimetage MySQL-i kataloog ümber:

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

Järgmisena loome sümboli.

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

Nüüd olete valmis alustama oma MySQL-i ja veebiteenust:

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

Sel hetkel pääseb teie MySQL-i andmebaasidele juurde uuelt kettalt.