MySQL is een krachtige open source Relationeel databasebeheersysteem of in het kort RDBMS. Het werd uitgebracht in 1995 (20 jaar oud). Het gebruikt 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 het feit dat de naam komt van: Michael Widenius's (de maker van MySQL) dochter Mijn. Ook al hoewel er tal van interessante feiten over MySQL zijn, is dit artikel bedoeld om u enkele nuttige praktijken te laten zien om u te helpen bij het beheren van uw MySQL-server.
In april 2009 het MySQL-project werd gekocht door Oracle. Als gevolg hiervan werd een MySQL-communityfork genaamd MariaDB werd opgericht. De belangrijkste reden voor het maken van de vork was om het project vrij te houden onder de General Public License.
Vandaag MySQL en MariaDB zijn een van de meest (zo niet de meest) gebruikte RDBMS die worden gebruikt voor webtoepassingen zoals: WordPress, Joomla, Magento en anderen.
Dit artikel laat u enkele basis, maar nuttige tips zien hoe u de prestaties van MySQL/MariaDB kunt optimaliseren. Houd er rekening mee dat dit artikel ervan uitgaat dat MySQL of MariaDB al is geïnstalleerd. Als u zich nog steeds afvraagt hoe u ze op uw systeem kunt installeren, kunt u hier onze uitgebreide handleidingen volgen:
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 u moet weten:
/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.Eerst is het belangrijk om dat uit te leggen InnoDB is een opslagmotor. MySQL en MariaDB gebruiken InnoDB als standaard opslagengine. In het verleden hield MySQL databasetabellen en indexen bij in een systeemtabelruimte. 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
data bestand. Elk .ibd bestand vertegenwoordigt een eigen tabelruimte. Op die manier databasebewerkingen zoals "TRUNCATE” kan sneller worden voltooid en u kunt ook ongebruikte ruimte terugwinnen bij het verwijderen of afkappen van een databasetabel.
Een ander voordeel van deze configuratie is het feit dat u sommige databasetabellen op een apart opslagapparaat kunt bewaren. Dit kan de IO laden op uw schijven.
De innodb_file_per_table is standaard ingeschakeld in MySQL 5.6 en hoger. Dat zie je in /etc/my.cnf het dossier. De richtlijn ziet er als volgt uit:
innodb_file_per_table=1.
Opmerking: Deze setup werkt alleen met MySQL, maar niet met MariaDB.
Soms kan het lezen/schrijven van het besturingssysteem de prestaties van uw MySQL-server vertragen, vooral als deze zich op dezelfde harde schijf bevindt. In plaats daarvan zou ik aanraden om 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 toepassing van dit artikel ga ik ervan uit dat de schijf onder /dev/sdb.
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 vanaf 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. Als u klaar bent, drukt u op "met wie” om de wijzigingen te schrijven. Nu moeten we een bestandssysteem maken voor onze nieuwe partitie. Dit kan eenvoudig met:
# mkfs.ext4 /dev/sdb1.
Nu zullen we onze nieuwe partitie in een map mounten. Ik heb mijn map een naam gegeven "ssd” en gemaakt in de hoofdmap:
# mkdir /ssd/
We zijn klaar om de nieuwe partitie die we zojuist hebben gemaakt te mounten in de nieuwe map:
# koppel /dev/sdb1 /ssd/
U kunt de koppeling bij het opstarten uitvoeren door de volgende regel in te voegen: /etc/fstab het dossier.
/dev/sdb1 /ssd ext3 standaard 0 0.
Nu bent u klaar om MySQL naar de nieuwe schijf te verplaatsen. Stop eerst de MySQL-service met:
# service mysqld stop.
Ik zou je aanraden 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 even duren, afhankelijk van de site van uw MySQL-databases. Zodra dit proces is voltooid, wijzigt u de naam van de MySQL-directory:
# mv /var/lib/mysql /var/lib/mysql-backup.
Vervolgens maken we een symbolische link.
# ln -s /ssd/mysql /var/lib/mysql.
Nu bent u klaar om uw MySQL en webservice te starten:
# service mysqld start. # dienst httpd start. # service nginx start.
Op dit punt zijn uw MySQL-databases toegankelijk vanaf de nieuwe schijf.