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

Zend Framework a Mysql - velmi pomalé

Tipy:

  • Uložte tabulku do mezipaměti metadata . Ve výchozím nastavení Zend_Db_Table se pokusí zjistit metadata o tabulce pokaždé, když se vytvoří instance vašeho objektu tabulky. Použijte mezipaměť ke snížení počtu opakování. Nebo jej napevno zakódujte ve své třídě Table (poznámka:tabulky db nejsou modely ).

  • Použijte EXPLAIN analyzovat plán optimalizace MySQL. Používá index efektivně?

    mysql> EXPLAIN SELECT * FROM standard_accessory WHERE model = 'abc';
    
  • Použijte BENCHMARK() pro měření rychlosti dotazu, bez použití PHP. Poddotaz musí vracet jeden sloupec, takže se ujistěte, že vracíte neindexovaný sloupec, aby se dotaz musel dotknout dat namísto pouhého vracení položky rejstříku.

    mysql> SELECT BENCHMARK(1000, 
      (SELECT nonindexed_column FROM standard_accessory WHERE model = 'abc'));
    
  • Všimněte si, že Zend_Db_Adapter lazy-loads své db připojení, když uděláte první dotaz. Pokud se tedy připojování k serveru MySQL zpomalí, stane se to při vytváření instance objektu Table (když se dotazuje na metadata). Nějaký důvod, proč by to mohlo trvat dlouho? Vyhledávání DNS , možná?



  1. Primární klíč SQLite

  2. Změna primárního klíče MySQL, pokud existují omezení cizího klíče

  3. Chybí mysql.h a pokouším se najít mysql-devel

  4. Pomalý dotaz po upgradu mysql z 5.5 na 5.6