Ten eerste zou ik zeggen dat je waarschijnlijk aanhoudende verbindingen wilt uitschakelen, omdat ze bijna altijd meer kwaad dan goed doen.
Ten tweede zou ik zeggen dat je je MySQL-gebruikers dubbel wilt controleren, om er zeker van te zijn dat niemand verbinding kan maken vanaf een externe server. Dit is ook een belangrijk beveiligingspunt om te controleren.
Ten derde zou ik zeggen dat je de wilt inschakelen MySQL trage zoekopdracht Log in om eventuele vragen die veel tijd in beslag nemen in de gaten te houden en gebruik dat om ervoor te zorgen dat er geen vragen zijn die sleuteltabellen te lang blokkeren.
Enkele andere dingen die u kunt controleren, zijn de volgende query uitvoeren terwijl de CPU-belasting hoog is:
SHOW PROCESSLIST;
Dit toont u alle query's die momenteel worden uitgevoerd of in de wachtrij staan om uit te voeren, wat de query is en wat deze doet (deze opdracht zal de query afkappen als deze te lang is, u kunt SHOW FULL PROCESSLIST gebruiken om de volledige querytekst te zien) .
Je zult ook dingen in de gaten willen houden, zoals je buffergroottes, tabelcache , querycache en innodb_buffer_pool_size (als u innodb-tabellen gebruikt), aangezien al deze geheugentoewijzingen een invloed kunnen hebben op de queryprestaties, waardoor MySQL de CPU kan opeten.
Je zult waarschijnlijk ook het volgende willen lezen, omdat ze goede informatie bevatten.
Het is ook een heel goed idee om een profiler te gebruiken. Iets dat u kunt inschakelen wanneer u maar wilt en dat u laat zien welke query's uw toepassing uitvoert, of er dubbele query's zijn, hoe lang ze duren, enz. Een voorbeeld van zoiets als dit is er een waar ik aan heb gewerkt, genaamd PHP Profiler maar er zijn er veel. Als je een stukje software zoals Drupal, Joomla of Wordpress gebruikt, moet je rondvragen binnen de community, want er zijn waarschijnlijk modules voor hen beschikbaar waarmee je deze informatie kunt krijgen zonder dat je iets handmatig hoeft te integreren.