като заглавието гласи, в моята база данни различни заявки се появяват в регистъра на бавните заявки, но когато ги стартирам ръчно, те стартират 10 пъти по-бързо.
например сравнително проста заявка за избор сняколко ред от params отнема често до 100 секунди в дневника (да таблица е много голям) ... но когато го пусна на себе си на същата DB отнема 2 секунди или така.
Изследвах работата на сървъра и нямаше да има някакво забавяне или пречка по това време, нито пък много запитвания отнеха много време в този период, а само едно.
как мога да започна да анализирам такъв проблем?
Благодаря за помощта
Отговори:
5 за отговор № 1Възможно е системата ви да е била по-заета, когато заявката за нарушение е въведена в бавния дневник.
Бавният дневник може да показва, че индексите не сае напълно използван, ако rows_examined е по-голям от резултата. Следователно, времето за изпълнение трябва да се счита за представа, че заявката има проблем, но rows_examined ще ви даде повече от един окончателен отговор.
Времето за заявка е слабо измерване на производителността на aсървър с високо натоварване, защото всяка заявка може да е бавна на зает сървър. Трябва да използвате EXPLAIN и SHOW PROFILE, за да профилирате вашите запитвания и да ги подобрявате, така че да не натоварват твърде много сървъра ви.
употреба SELECT SQL_NO_CACHE ...
при профилиране на заявки, така че резултатите да не се съхраняват в кеша на заявките, в противен случай следващите изпълнения на една и съща заявка могат да използват кеша за заявки, като изравняват времето на заявка.