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 werd uitgebracht op 29 mei 2015.
Een interessant feit over MySQL is dat de naam afkomstig is van de dochter van Michael Widenius (de maker van MySQL) My. Ondanks dat er genoeg interessante feiten zijn over MySQL, is dit artikel bedoeld om je enkele nuttige praktijken te laten zien om je te helpen bij het beheren van je MySQL-server.

In april 2009 werd het MySQL-project gekocht door Oracle. Als gevolg hiervan werd een MySQL-communityfork genaamd MariaDB gemaakt. De belangrijkste reden voor het maken van de fork was om het project gratis te houden onder de General Public License.
Vandaag de dag zijn MySQL en MariaDB een van de meest (zo niet de meest) gebruikte RDBMS voor webapplicaties zoals WordPress, Joomla, Magento en anderen.
Dit artikel zal je enkele basis-, maar nuttige tips laten zien om de prestaties van MySQL/MariaDB te optimaliseren. Houd er rekening mee dat dit artikel ervan uitgaat dat je al MySQL of MariaDB hebt geïnstalleerd. Als je nog steeds afvraagt hoe je ze op je systeem kunt installeren, kun je onze uitgebreide handleidingen hier volgen:
- Het installeren van LAMP op RHEL/CentOS 7
- Het installeren van LAMP op Fedora 22
- Het instellen van LAMP op Ubuntu 15.04
- Het installeren van MariaDB op Debian 8
- Installeer MariaDB op Gentoo Linux
- Installeer MariaDB op Arch Linux
Belangrijk: Voordat we beginnen – accepteer deze suggesties niet blindelings. Elke MySQL-configuratie is uniek en vereist extra aandacht voordat er wijzigingen worden aangebracht.
Dingen die je moet weten:
- Het MySQL/MariaDB-configuratiebestand bevindt zich in
/etc/my.cnf
. Telkens wanneer je dit bestand wijzigt, moet je de MySQL-service opnieuw starten zodat de nieuwe wijzigingen van kracht worden. - Voor het schrijven van dit artikel is MySQL-versie 5.6 gebruikt als sjabloon.
1. Schakel InnoDB file-per-table in
Het is eerst belangrijk om uit te leggen dat InnoDB een opslagengine is. MySQL en MariaDB gebruiken InnoDB als standaard opslagengine. In het verleden gebruikte MySQL database tabellen en indexen in een systeemtablespace. Deze aanpak was bedoeld voor servers die uitsluitend zijn bedoeld voor databaseverwerking en waarvan de 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 tablespace. Op die manier kunnen databasebewerkingen zoals “TRUNCATE” sneller worden voltooid en kunt u ook ongebruikte ruimte terugwinnen wanneer u een database tabel verwijdert of inkort.
Nog een voordeel van deze configuratie is het feit dat u sommige database tabellen in 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. U kunt dat zien in het bestand /etc/my.cnf. De opdracht ziet er als volgt uit:
innodb_file_per_table=1
2. Sla MySQL Databasegegevens op in een aparte partitie
Opmerking: Deze setup werkt alleen met MySQL, maar niet met MariaDB.
Soms kunnen OS-lees/schrijfoperaties de prestaties van uw MySQL-server vertragen, vooral als ze zich op dezelfde harde schijf bevinden. In plaats daarvan zou ik aanbevelen om een aparte harde schijf (bij voorkeur SSD) te gebruiken voor de MySQL-service.
Om dit te voltooien, moet u de nieuwe schijf aan uw computer/server koppelen. Voor dit artikel ga ik ervan uit dat de schijf onder /dev/sdb zal staan.
De volgende stap is om de nieuwe schijf voor te bereiden:
# fdisk /dev/sdb
Druk nu op “n” om een nieuwe partitie aan te maken. Druk vervolgens op “p” om de nieuwe partitie primair te maken. Daarna stelt u het partitienummer in van 1-4. Daarna selecteert u de grootte van de partitie. Druk hier op enter. In 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 handmatig de grootte van de nieuwe partitie instellen. Wanneer u klaar bent, drukt u op “w” om de wijzigingen op te slaan. Nu moeten we een bestandssysteem maken voor onze nieuwe partitie. Dit kan eenvoudig worden gedaan met:
# mkfs.ext4 /dev/sdb1
Nu zullen we onze nieuwe partitie in een map monteren. Ik heb mijn map “ssd” genoemd en aangemaakt in de hoofdmap:
# mkdir /ssd/
We zijn klaar om de nieuwe partitie die we zojuist hebben gemaakt in de nieuwe map te monteren:
# mount /dev/sdb1 /ssd/
U kunt de koppeling bij het opstarten uitvoeren door de volgende regel toe te voegen in het bestand /etc/fstab.
/dev/sdb1 /ssd ext3 defaults 0 0
U bent nu klaar om MySQL naar de nieuwe schijf te verplaatsen. Stop eerst de MySQL-service met:
# service mysqld stop
I would recommend you stopping Apache/nginx as well to prevent any attempts to write in the databases:
# service httpd stop # service nginx stop
Kopieer nu de volledige MySQL-map naar de nieuwe schijf:
# cp /var/lib/mysql /ssd/ -Rp
Dit kan even duren, afhankelijk van de grootte van uw MySQL-databases. Zodra dit proces is voltooid, hernoemt u de MySQL-map:
# mv /var/lib/mysql /var/lib/mysql-backup
Vervolgens zullen we een symbolische koppeling maken.
# ln -s /ssd/mysql /var/lib/mysql
U bent nu klaar om uw MySQL- en webservice te starten:
# service mysqld start # service httpd start # service nginx start
Op dit punt worden uw MySQL-databases benaderd vanaf de nieuwe schijf.
Source:
https://www.tecmint.com/mysql-mariadb-performance-tuning-and-optimization/