Това звучи така:Бъг #70617 Постоянните статистически данни по подразбиране могат да причинят неочаквани дълги времена на заявка
За какво си струва, това не е грешка в Percona, присъства и в изданието на общността MySQL 5.6.
Има три възможни решения:
-
Използвайте STRAIGHT_JOIN, за да дадете намек на оптимизатора да не пренарежда препратките към таблицата.
SELECT STRAIGHT_JOIN i.item_name, i.item_key, i.item_date, f.format_long FROM items i INNER JOIN formats f ON i.item_format = f.format_id WHERE i.item_private = 0 ORDER BY i.item_id DESC LIMIT 8
Пренаписах вашето JOIN, за да използва синтаксис SQL-92, което препоръчвам.
-
Деактивирайте новата постоянната статистика на InnoDB функция, връщане към поведение от преди 5.6.
Във вашия my.cnf файл:
innodb_stats_persistent=0
-
Опреснете ръчно статистиката на оптимизатора на InnoDB, след като направите значителна промяна в данните (например след зареждане на mysqldump):
ANALYZE TABLE items; ANALYZE TABLE formats;
PS:Работя в Percona и тази грешка беше открита от моя колега Justin Swanhart .