Zoeken op website

15 Handige MySQL/MariaDB-prestatieafstemming en optimalisatietips


MySQL is een krachtig open source Relationeel Database Management Systeem of kortweg RDBMS. Het werd uitgebracht in 1995 (20 jaar oud). Het maakt gebruik van Structured Query Language, wat waarschijnlijk de meest populaire keuze is voor het beheren van inhoud binnen een database. De nieuwste MySQL-versie is 5.6.25 en is uitgebracht op 29 mei 2015.

Een interessant feit over MySQL is het feit dat de naam afkomstig is van de dochter van Michael Widenius (de maker van MySQL) My. Ook al zijn er tal van interessante feiten over MySQL, dit artikel is bedoeld om u enkele nuttige praktijken te laten zien om u te helpen uw MySQL-server te beheren.

In april 2009 werd het MySQL-project gekocht door Oracle. Als gevolg hiervan werd een MySQL-communityfork met de naam MariaDB gecreëerd. De belangrijkste reden voor het maken van de fork was om het project gratis te houden onder de General Public License.

Tegenwoordig zijn MySQL en MariaDB een van de meest (zo niet de meest) gebruikte RDBMS die worden gebruikt voor webapplicaties zoals WordPress, Joomla, Magento en anderen.

Dit artikel laat u enkele eenvoudige, maar nuttige tips zien hoe u de prestaties van MySQL/MariaDB kunt optimaliseren. Houd er rekening mee dat dit artikel ervan uitgaat dat u MySQL of MariaDB al hebt geïnstalleerd. Als u zich nog steeds afvraagt hoe u ze op uw systeem moet installeren, kunt u hier onze uitgebreide handleidingen volgen:

  1. LAMP installeren op RHEL/CentOS 7
  2. LAMP installeren op Fedora 22
  3. LAMP instellen op Ubuntu 15.04
  4. MariaDB installeren op Debian 8
  5. Installeer MariaDB op Gentoo Linux
  6. Installeer MariaDB op Arch Linux

Belangrijk: voordat we beginnen: accepteer deze suggesties niet blindelings. Elke MySQL-installatie is uniek en vereist extra aandacht voordat u wijzigingen aanbrengt.

Dingen die je moet weten:

  1. Het MySQL/MariaDB-configuratiebestand bevindt zich in /etc/my.cnf. Elke keer dat u dit bestand wijzigt, moet u de MySQL-service opnieuw opstarten, zodat de nieuwe wijzigingen van kracht kunnen worden.
  2. Voor het schrijven van dit artikel is MySQL versie 5.6 als sjabloon gebruikt.

1. Schakel InnoDB-bestand-per-tabel in

Eerst is het belangrijk om uit te leggen dat InnoDB een opslagengine is. MySQL en MariaDB gebruiken InnoDB als standaard opslagengine. In het verleden werd MySQL gebruikt om databasetabellen en indexen in een systeemtabelruimte bij te houden. Deze aanpak was bedoeld voor servers die als enige doel databaseverwerking hebben en hun opslagschijf niet voor andere doeleinden wordt gebruikt.

De InnoDB biedt een flexibelere aanpak en elke database-informatie wordt bewaard in een .ibd-gegevensbestand. Elk .ibd-bestand vertegenwoordigt een eigen tabelruimte. Op die manier kunnen databasebewerkingen zoals “TRUNCATE ” sneller worden voltooid en kunt u ook ongebruikte ruimte vrijmaken wanneer u een databasetabel verwijdert of afkapt.

Een ander voordeel van deze configuratie is het feit dat u sommige databasetabellen op een apart opslagapparaat kunt bewaren. Dit kan de I/O-belasting op uw schijven aanzienlijk verbeteren.

De innodb_file_per_table is standaard ingeschakeld in MySQL 5.6 en hoger. Je kunt dat zien in het bestand /etc/my.cnf. De richtlijn ziet er als volgt uit:

innodb_file_per_table=1

2. Bewaar MySQL-databasegegevens op een aparte partitie

Opmerking: deze configuratie werkt alleen met MySQL, maar niet met MariaDB.

Soms kunnen lees-/schrijfbewerkingen van het besturingssysteem de prestaties van uw MySQL-server vertragen, vooral als deze zich op dezelfde harde schijf bevinden. In plaats daarvan zou ik aanraden een aparte harde schijf (bij voorkeur SSD) te gebruiken voor de MySQL-service.

Om dit te voltooien, moet u de nieuwe schijf op uw computer/server aansluiten. Voor de doeleinden van dit artikel ga ik ervan uit dat de schijf zich onder /dev/sdb bevindt.

De volgende stap is het voorbereiden van de nieuwe schijf:

fdisk /dev/sdb

Druk nu op “n ” om een nieuwe partitie te maken. Druk vervolgens op “p ” om de nieuwe partitie primair te maken. Stel daarna het partitienummer in van 1-4. Daarna selecteert u de partitiegrootte. Druk hier op enter. Bij de volgende stap moet u de grootte van de partitie configureren.

Als u de hele schijf wilt gebruiken, drukt u nogmaals op Enter. Anders kunt u de grootte van de nieuwe partitie handmatig instellen. Wanneer u klaar bent, drukt u op “w ” om de wijzigingen te schrijven. Nu zullen we een bestandssysteem moeten maken voor onze nieuwe partitie. Dit kan eenvoudig gedaan worden met:

mkfs.ext4 /dev/sdb1

Nu zullen we onze nieuwe partitie in een map mounten. Ik heb mijn map de naam “ssd” gegeven en in de hoofdmap gemaakt:

mkdir /ssd/

We zijn klaar om de nieuwe partitie die we zojuist hebben gemaakt in de nieuwe map te mounten:

mount /dev/sdb1  /ssd/

U kunt de mount uitvoeren bij het opstarten door de volgende regel toe te voegen aan het bestand /etc/fstab.

/dev/sdb1 /ssd ext3 defaults 0 0

Nu bent u klaar om MySQL naar de nieuwe schijf te verplaatsen. Stop eerst de MySQL-service met:

service mysqld stop

Ik raad je aan om ook Apache/nginx te stoppen om pogingen om in de databases te schrijven te voorkomen:

service httpd stop
service nginx stop

Kopieer nu de volledige MySQL-map naar de nieuwe schijf:

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

Dit kan enige tijd duren, afhankelijk van de site van uw MySQL-databases. Zodra dit proces is voltooid, hernoemt u de MySQL-map:

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

Vervolgens maken we een symlink.

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

Nu bent u klaar om uw MySQL en webservice te starten:

service mysqld start
service httpd start
service nginx start

Op dit punt zijn uw MySQL-databases toegankelijk vanaf de nieuwe schijf.