Det här låter som:Bug #70617 Standardbeständig statistik kan orsaka oväntade långa frågetider
För vad det är värt är detta inte en Percona-bugg, det finns också i MySQL 5.6 community-utgåva.
Det finns tre möjliga lösningar:
-
Använd STRAIGHT_JOIN för att ge en ledtråd till optimeraren att inte ändra ordning på tabellreferenser.
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
Jag har skrivit om din JOIN för att använda SQL-92-syntax, vilket jag rekommenderar.
-
Inaktivera den nya InnoDB persistent statistik funktion, återgår till beteendet före 5.6.
I din my.cnf-fil:
innodb_stats_persistent=0
-
Uppdatera InnoDB-optimeringsstatistik manuellt efter att du har gjort en betydande ändring av data (till exempel efter att ha laddat en mysqldump):
ANALYZE TABLE items; ANALYZE TABLE formats;
PS:Jag arbetar på Percona, och det här felet upptäcktes av min kollega Justin Swanhart .