sql >> Database >  >> RDS >> Mysql

Overmatige MySQL-activiteit

In dit artikel bespreken we de impact van buitensporige MySQL-activiteit en hoe dit nadelig kan zijn voor het algehele gebruik van resources in uw account. MySQL is de database-back-end van veel populaire webapplicaties en het is waar deze applicaties hun gegevens opslaan om later te worden opgehaald door server-side scripts om die informatie naar uw pagina's te trekken.

Als u een melding heeft ontvangen van onze systeembeheerafdeling met betrekking tot buitensporige MySQL-activiteit afkomstig van uw account, dan betekent dit hoogstwaarschijnlijk dat het activiteitsniveau dat ze zagen de mogelijkheden van het hostingplatform waarop uw account zich momenteel bevindt, overschreed.

Veelvoorkomende oorzaken van overmatige MySQL-activiteit

Langlopende zoekopdrachten Een typische SQL-query zou binnen 1 seconde tot hooguit een paar seconden moeten kunnen worden voltooid. Het hebben van langlopende query's die deze querytijden consequent overschrijden, kan leiden tot vertragingen bij het bedienen van andere query's op de server.
Hoge zoekopdrachten per seconde Normaal gesproken komen SQL-query's in kleine golven binnen die recht evenredig zijn met uw verkeer, en als uw scripts een groot aantal SQL-query's per pagina laden, kunt u mogelijk een hoog aantal hebben van SQL-query's per seconde, wat kan leiden tot een negatief effect op de queryprestaties van de server en kan leiden tot langlopende query's.
Grote zoekopdrachten niet geoptimaliseerd Sommige SQL-query's zullen zeer complex van aard zijn, vooral degenen die meerdere tabellen met gegevens samenvoegen voordat bewerkingen op die gegevens worden uitgevoerd. Door ervoor te zorgen dat uw SQL-query's efficiënt zijn en alleen de gegevens ophalen die ze echt nodig hebben om weer te geven, kunt u voorkomen dat die inefficiënte query's langlopende query's of een groot aantal query's per seconde veroorzaken.
Persistente verbindingen De meeste SQL-query's openen gewoon een verbinding met de database, halen gegevens op en sluiten vervolgens de databaseverbinding. MySQL ondersteunt ook permanente verbindingen waarbij de verbinding wordt gehandhaafd, zelfs nadat de gegevens zijn opgehaald. Dit kan soms problematisch zijn, vooral bij gedeelde hosting, waar u de max . kunt tegenkomen _user_connections limiet ingesteld in MySQL.

Als uw MySQL-activiteit buitensporig is, zal onze systeembeheerafdeling in de meeste gevallen contact met u opnemen met een algemene uitleg over waar de activiteit vandaan lijkt te komen.

MySQL-gebruik optimaliseren

Een goede eerste stap bij het optimaliseren van uw MySQL-database is door phpMyAdmin te gebruiken om een ​​database te optimaliseren.

Soms kan uw normale MySQL-activiteit prima zijn, maar wanneer robots uw site beginnen te crawlen, kan dit inefficiënties in uw applicatie aan het licht brengen, dus het zou ook goede informatie zijn om te weten hoe u kunt voorkomen dat zoekmachines en robots uw website crawlen.

Ten slotte wilt u ook kijken naar de SQL-caching-opties die beschikbaar zijn voor uw toepassing. Als je voorpagina bijvoorbeeld 2 SQL-query's nodig heeft om alle informatie op die pagina weer te geven, en je hebt 100 mensen die naar die pagina komen, dan zullen dat 200 queries zijn en het haalt geen unieke gegevens terug, maar elke keer hetzelfde.

Het implementeren van SQL-caching kan helpen om deze dubbele databasequery's te verminderen. Voor een voorbeeld van dit type caching kunt u lezen over het optimaliseren van WordPress met de W3 Total Cache-plug-in.


  1. Geaggregeerde functie in een SQL-updatequery?

  2. Gegroepeerde rangschikking uitvoeren in MySQL

  3. MySQL-weergaven

  4. Is er een hash-functie in PL/SQL?