Cela ressemble à :Bug #70617 Les statistiques persistantes par défaut peuvent entraîner des temps de requête longs inattendus
Pour ce que ça vaut, ce n'est pas un bogue Percona, il est également présent dans MySQL 5.6 community edition.
Il existe trois solutions possibles :
-
Utilisez STRAIGHT_JOIN pour indiquer à l'optimiseur de ne pas réorganiser les références de table.
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
J'ai réécrit votre JOIN pour utiliser la syntaxe SQL-92, ce que je recommande.
-
Désactiver les nouvelles Statistiques persistantes InnoDB fonctionnalité, revenant au comportement antérieur à la version 5.6.
Dans votre fichier my.cnf :
innodb_stats_persistent=0
-
Actualisez manuellement les statistiques de l'optimiseur InnoDB après avoir apporté une modification importante aux données (par exemple, après le chargement d'un mysqldump) :
ANALYZE TABLE items; ANALYZE TABLE formats;
PS :Je travaille chez Percona, et ce bug a été découvert par mon collègue Justin Swanhart .