Понякога една-единствена SQL заявка може да бъде причината за всички проблеми на сървъра. MySQL има вградена функционалност за улавяне на бавен дневник на заявки или идентифициране на заявки, които не са оптимални и отнемат много време за завършване, което ви позволява да регистрирате всички бавно изпълняващи се заявки, които са отнели определен брой секунди за изпълнение от MySQL машината на базата данни, към файл. Бавният регистър на заявките не е активиран или е включен по подразбиране инсталацията на MySQL, поради което е един от по-рядко използваните регистрационни файлове.
За да активирате бавен регистър на заявките, просто добавете следния ред към конфигурационния файл на MySQL (my.cnf или my.ini) и след това рестартирайте MySQL сървъра:
log-slow-queries
Или,
log-slow-queries = [path to the log file]
Заменете [път към регистрационния файл] с действителен път до бавния регистрационен файл на заявките, в който искате MySQL да запише дневника, което е незадължителната стойност.
Или можете да стартирате mysqld с –log-slow-queries[=file_name] опция за активиране на бавния регистър на заявките. И в двата синтаксиса, ако не е посочено име на регистрационния файл, името по подразбиране е име_хост -slow.log, съхраняван в директорията с файлове с данни на MySQL. Ако е дадено име на файл, но не като абсолютен път, сървърът също записва файла в директорията с данни.
След активиране на бавен журнал на заявки, MySQL ще създаде, улови и регистрира в регистрационния файл с всички SQL изрази, които са отнели повече от long_query_time секунди за изпълнение, което по подразбиране е зададено на 10 секунди . Времето за придобиване на първоначалните заключвания на таблицата не се отчита като време за изпълнение. mysqld записва израз в бавния дневник на заявките, след като е бил изпълнен и след като всички заключвания са били освободени, така че редът на дневника може да е различен от реда на изпълнение.
След това можете да прегледате всички бавни SQL заявки в регистрационния файл и след това да предприемете необходимите стъпки за оптимизиране на SQL изразите. Регистърът на бавните заявки ще ви разкаже за времето, в което заявката е завършена, колко време е отнело да се изпълнява, колко време е отнело, за да се защитят ключалките й, колко реда са били изпратени обратно в резултат, колко реда са били проверени, за да се определи резултат, коя база данни е била използвана и самата действителна заявка. Но имайте предвид, че SQL заявка, съдържаща се в регистрационния файл, може вече да е оптимална, но се изпълнява бавно, тъй като системните ресурси са изразходвани от действителния slow израз, който трябва да бъде фино настроен.