Намиране и коригиране на бавни заявки към база данни на WordPress, всичко за WordPress
Бавните SQL заявки могат да повлияят отрицателно на ефективността на вашия WordPress сайт. Понякога бавните заявки са резултат от лошо оформен SQL, който трябва да бъде реализиран по малко по-различен начин. И в някои ситуации бавните заявки в началото бяха бързи - но с напредване на възрастта на сайта заявките ставаха все по-бавни и вече започнаха да изостават от разширяващата се база данни.
Независимо от това как вашият SQL се забави, нека разгледаме някои начини за намиране и коригиране на проблемни заявки в WordPress.
Намиране на бавни заявки
Намирането на източника на бавни заявки включва две стъпки:
- Определете кои заявки всъщност са бавни.
- Търсим код, който ги генерира и изпълнява.
Нека да разгледаме две приставки и едно SaaS решение, за да ни помогнат да намерим бавни заявки.
Монитор на заявки
Query Monitor е приставка, която показва различна информация за текущата страница. В допълнение към изобилните данни за WordPress вътрешните компоненти, приставката предоставя подробна статистика за следното:
- Колко заявки са възникнали за това обаждане
- Кои заявки на страницата отнеха най-много време
- Кои функции отнеха най-много време на SQL заявките
- Какви заявки идват от плъгини, теми и ядро на WordPress

Query Monitor подчертава бавни заявки със страшен червен текст, който улеснява откриването на проблемен SQL:

Бар за отстраняване на грешки
Друг чудесен инструмент за намиране на бавен SQL е добрият стар плъгин Debug Bar. Лентата за отстраняване на грешки показва информация за вътрешните елементи на WordPress, когато зареждате страница с данни като:
- Параметри на WP_Query
- Информация за обажданията (включително съответстващи правила за пренаписване)
- SQL заявки, генерирани от текущата страница
За да активирате третия елемент в лентата за отстраняване на грешки (проследяване на SQL), уверете се, че SAVEQUERIES е активиран на вашия сайт - това обикновено се прави във файла wp-config.php:
Предупреждение: SAVEQUERIES влияе върху ефективността на вашия сайт и най-вероятно не трябва да се използва в производствен сайт. Използвайте го само на уебсайта в процес на разработка.
Намирането на бавен SQL в лентата за отстраняване на грешки не е толкова лесно. Например приставката няма сортируеми таблици и не откроява бавни заявки. Debug Bar осигурява проследяване на функции за идентифициране на произхода на заявката.

Ето списък на файловете и функциите, които трябва да бъдат заредени, които ще изпълнят заявката. По принцип ще се интересувате от последния запис в списъка; тук се изпълнява най-бавната заявка и тук ще трябва да започнете търсенето си. Също така е удобно да има контекст за всяка отделна функция.
NewRelic
NewRelic е услуга, която измерва и проследява случайността на вашето уеб приложение, включително WordPress. Услугата предлага много различна информация за ефективността на вашия сайт. Много е лесно да се загубите в данните, които NewRelic предлага, от подробно изпълнение на кода до поетапни отчети за SQL заявки.

Има две основни разлики между NewRelic и приставките, споменати по-горе:
- NewRelic показва по-подробна информация за производителността на вашия PHP, до милисекундите, прекарани в изпълнение на всяка функция.
- NewRelic проследява всяка заявка към вашия сайт във фонов режим, т.е. можете да анализирате информацията по-късно, за да намерите бавен SQL. Приставките показват информация само за текущата страница.
Заслужава да се отбележи, че NewRelic има безплатен план, който ви позволява да показвате обща информация за ефективността на вашия сайт, но за да получите всички важни подробности, ще трябва да надстроите до платен план. В този план ще можете да проследявате отделни заявки и да намирате бавен SQL.