Najpierw powiedziałbym, że prawdopodobnie chcesz wyłączyć trwałe połączenia, ponieważ prawie zawsze wyrządzają więcej szkody niż pożytku.
Po drugie, powiedziałbym, że chcesz dokładnie sprawdzić użytkowników MySQL, aby upewnić się, że nikt nie może połączyć się ze zdalnego serwera. Jest to także ważna kwestia bezpieczeństwa do sprawdzenia.
Po trzecie, powiedziałbym, że chcesz włączyć dziennik wolnych zapytań MySQL, aby mieć oko na wszelkie zapytania, które zajmują dużo czasu, i użyj go, aby upewnić się, że nie masz żadnych zapytań blokujących tabele kluczy zbyt długo.
Inne rzeczy, które można sprawdzić, to uruchomienie następującego zapytania, gdy obciążenie procesora jest wysokie:
SHOW PROCESSLIST;
Spowoduje to wyświetlenie zapytań, które są aktualnie uruchomione lub w kolejce do uruchomienia, co to jest zapytanie i co robi (to polecenie skróci zapytanie, jeśli jest zbyt długie, możesz użyć POKAŻ PEŁNĄ PROCESLISTĘ, aby zobaczyć pełny tekst zapytania) .
Warto również, aby mieć oko na takie rzeczy jak swojej wielkości bufora, stół cache , cache zapytań i innodb_buffer_pool_size (jeśli używasz tabel InnoDB), a wszystkie te alokacji pamięci może mieć wpływ na wydajność zapytań, które mogą doprowadzić do MySQL zjedz procesor.
Prawdopodobnie zechcesz także przeczytać poniższe, ponieważ zawierają one dobre informacje.
Bardzo dobrym pomysłem jest również użycie profilera. Coś, co możesz włączyć, kiedy chcesz, to pokaże, jakie zapytania są uruchomione przez twoją aplikację, jeśli są duplikaty zapytań, jak długo je zajmują itp. Itp. Przykładem czegoś takiego jest to, nad którym pracuję, nazywane PHP Profiler, ale jest ich wiele. Jeśli używasz oprogramowania takiego jak Drupal, Joomla lub Wordpress, zechcesz zapytać w społeczności, ponieważ prawdopodobnie są dla nich dostępne moduły, które pozwalają uzyskać te informacje bez konieczności ręcznej integracji.