sql >> Databáze >  >> RDS >> Mysql

Problém Percona 5.6 InnoDB nepoužívá správně indexy

Zní to takto:Chyba #70617 Výchozí trvalé statistiky mohou způsobit neočekávaně dlouhé doby dotazování

Co to stojí za to, nejedná se o chybu Percona, je také přítomna v komunitní edici MySQL 5.6.

Existují tři možná řešení:

  1. Pomocí STRAIGHT_JOIN můžete optimalizátoru poradit, aby neměnil pořadí odkazů na tabulky.

    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
    

    Přepsal jsem váš JOIN tak, aby používal syntaxi SQL-92, což doporučuji.

  2. Zakázat nové trvalé statistiky InnoDB funkce, návrat k chování před verzí 5.6.

    Ve vašem souboru my.cnf:

    innodb_stats_persistent=0
    
  3. Obnovte statistiky optimalizátoru InnoDB ručně poté, co provedete významnou změnu dat (například po načtení mysqldump):

    ANALYZE TABLE items;
    ANALYZE TABLE formats;
    

PS:Pracuji ve společnosti Percona a tuto chybu objevil můj kolega Justin Swanhart .




  1. Jak odstranit část řetězce v oracle

  2. APACHE padá:Nadřazený:podřízený proces ukončen se stavem 3221225477 -- Restartování

  3. Najděte název odkazované tabulky pomocí názvu tabulky, pole a schématu

  4. Proč v psql nemají některé příkazy žádný účinek?