sql >> Database >  >> RDS >> Mysql

15 handige tips voor het afstemmen en optimaliseren van MySQL/MariaDB-prestaties

MySQL is een krachtig open source Relationeel Database Management Systeem of in het kort RDBMS . Het werd uitgebracht in 1995 (20 jaar oud). Het gebruikt Gestructureerde Query-taal 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 afkomstig is van Michael Widenius's (de maker van MySQL) dochter My. Zelfs 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 resultaat een MySQL-community fork genaamd MariaDB werd gemaakt. De belangrijkste reden voor het maken van de vork was om het project vrij te houden onder de algemene openbare licentie.

Vandaag MySQL en MariaDB zijn 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 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 je je nog steeds afvraagt ​​hoe je ze op je systeem moet installeren, kun je onze uitgebreide handleidingen hier 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-configuratie is uniek en vereist extra aandacht voordat u wijzigingen aanbrengt.

Dingen die je moet weten:

  1. 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 MySQL-versie 5.6 is gebruikt als sjabloon.

1. InnoDB bestand-per-tabel inschakelen

Eerst is het belangrijk om uit te leggen dat 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 wordt niet voor andere doeleinden gebruikt.

De InnoDB biedt een flexibelere aanpak en elke database-informatie wordt bewaard in een .ibd data bestand. Elke .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 I/O . aanzienlijk verbeteren laad op uw schijven.

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

innodb_file_per_table=1

2. Bewaar MySQL-databasegegevens op een aparte partitie

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 raad ik aan 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 staat .

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 je 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 "w ” om de wijzigingen te schrijven. 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 mounten. 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 te mounten in de nieuwe map:

# mount /dev/sdb1  /ssd/

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

/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 even duren, afhankelijk van de site van uw MySQL-databases. Zodra dit proces is voltooid, hernoemt u 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
# service httpd start
# service nginx start

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

Pagina's:1 2 3 4
  1. SQLite IN

  2. Wat is de verbindingsreeks voor localdb voor versie 11

  3. Hoe kan ik regex gebruiken om een ​​string te splitsen, met een string als scheidingsteken?

  4. Overeenkomende algoritme in SQL