Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Zend Framework e Mysql - muito lento


Pontas:

  • Cache da tabela metadados . Por padrão, Zend_Db_Table tenta descobrir metadados sobre a tabela cada vez que seu objeto de tabela é instanciado. Use um cache para reduzir o número de vezes que ele precisa fazer isso. Ou então codifique-o em sua classe Table (nota:tabelas db não são modelos ).

  • Use EXPLAIN para analisar o plano de otimização do MySQL. Ele está usando um índice de forma eficaz?
    mysql> EXPLAIN SELECT * FROM standard_accessory WHERE model = 'abc';
    

  • Use BENCHMARK() para medir a velocidade da consulta, não usando PHP. A subconsulta deve retornar uma única coluna, portanto, certifique-se de retornar uma coluna não indexada para que a consulta tenha que tocar nos dados em vez de apenas retornar uma entrada de índice.
    mysql> SELECT BENCHMARK(1000, 
      (SELECT nonindexed_column FROM standard_accessory WHERE model = 'abc'));
    

  • Observe que Zend_Db_Adapter carrega lentamente sua conexão db quando você faz a primeira consulta. Portanto, se houver alguma lentidão na conexão com o servidor MySQL, isso acontecerá quando você instanciar o objeto Table (quando ele consultar metadados). Alguma razão para que isso possa levar muito tempo? pesquisas de DNS , talvez?