Mysql
 sql >> база данни >  >> RDS >> Mysql

Активирайте регистрирането на бавни заявки (Slow Query Log) в MySQL база данни

Едно от основните изисквания за бърз уеб сървър е да има ефективни и ефективни SQL изрази или заявки, които са оптимизирани. Всички неоптимални SQL (Structured Query Language) команди или изрази, които отнемат твърде дълго или продължително време за изпълнение, ще изразходват много системни ресурси, което ще доведе до по-бавна работа на базата данни на MySQL и след това все повече и повече изоставания от заявки, които се изреждат на опашка и когато лимитът за връзка е достигнат, на посетителите е отказана или е отказана връзка. В най-лошия случай вашият уеб сървър също ще изпадне или ще продължи да не работи. Случаят е особено верен, когато използвате тип таблица MyISAM, който използва заключване на ниво таблица вместо заключване на ниво ред в уебсайт с висок трафик.

Понякога една-единствена 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 израз, който трябва да бъде фино настроен.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Импортирайте база данни в MySQL или MariaDB

  2. Как да стартирате множество MySQL екземпляри на една и съща машина

  3. Потребителски разрешения на MySQL

  4. Конфигуриране на репликация на база данни Master-Master MySQL

  5. Как да управлявате MySQL бази данни, потребители и таблици от командния ред