Chociaż przede wszystkim pomagam mojemu klientowi w dostrajaniu wydajności programu SQL Server za pomocą kompleksowej kontroli stanu wydajności bazy danych , były chwile, kiedy pomogłem moim klientom z MySQL Performance, gdy znam rozwiązanie. Omówmy Slow Query i innodb_buffer_pool_size.
Podczas niedawnego zaangażowania w konsulting, zapytanie klienta działało bardzo szybko w SQL Server, ale działało bardzo wolno w MySQL. Moc sprzętu była bardzo podobna dla obu instalacji. Chcieli, żebym pomógł im zrozumieć, dlaczego zapytanie MySQL działało tak wolno, podczas gdy drugie działało bardzo szybko.
Przeprowadziliśmy sporo testów i zmieniliśmy wiele parametrów konfiguracyjnych. Nie odnieśliśmy jednak większego sukcesu. Po chwili przyjrzeliśmy się plikowi konfiguracyjnemu MySQL. Plik konfiguracyjny MySQL można znaleźć w lokalizacji tutaj w systemie Linux:/etc/mysql/my.conf
W tym pliku znaleźliśmy wartość innodb_buffer_pool_size i był ustawiony na bardzo powolną wartość. Zmieniliśmy wartość tej zmiennej na wyższą (z MB na GB) i od razu zauważyliśmy poprawę wydajności zapytania. To było tak proste rozwiązanie problemu, że wszyscy spędziliśmy dużo czasu na jego rozwiązywaniu.
Możesz również znaleźć wartość zmiennej, uruchamiając następujący skrypt:
show variables like 'inno%'
Nie zapomnij ponownie uruchomić usług MySQL po zmianie wartości pliku konfiguracyjnego, w przeciwnym razie nie przyniesie to żadnego efektu.
Jeśli podobał Ci się ten blog, nie zapomnij zasubskrybować mojego kanału YouTube – SQL w sześćdziesiąt sekund .