Brzmi to tak:Błąd nr 70617 Domyślne trwałe statystyki mogą powodować nieoczekiwanie długie czasy zapytań
Co jest warte, nie jest to błąd Percony, jest on również obecny w społecznościowej edycji MySQL 5.6.
Istnieją trzy możliwe obejścia:
-
Użyj STRAIGHT_JOIN, aby dać wskazówkę optymalizatorowi, aby nie zmieniał kolejności odniesień do tabeli.
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
Przepisałem twoje JOIN, aby używało składni SQL-92, co polecam.
-
Wyłącz nowe trwałe statystyki InnoDB funkcja, powrót do zachowania sprzed wersji 5.6.
W twoim pliku my.cnf:
innodb_stats_persistent=0
-
Odśwież statystyki optymalizatora InnoDB ręcznie po dokonaniu znaczącej zmiany danych (na przykład po załadowaniu mysqldump):
ANALYZE TABLE items; ANALYZE TABLE formats;
PS:Pracuję w firmie Percona i ten błąd został odkryty przez mojego kolegę Justina Swanharta .