sql >> Base de Datos >  >> RDS >> Mysql

Zend Framework y Mysql - muy lento

Consejos:

  • Almacenar en caché la tabla metadatos . Por defecto, Zend_Db_Table intenta descubrir metadatos sobre la tabla cada vez que se crea una instancia de su objeto de tabla. Use un caché para reducir la cantidad de veces que tiene que hacer esto. O codifíquelo en su clase Table (nota:las tablas db no son modelos ).

  • Use EXPLAIN para analizar el plan de optimización de MySQL. ¿Está usando un índice de manera efectiva?

    mysql> EXPLAIN SELECT * FROM standard_accessory WHERE model = 'abc';
    
  • Use BENCHMARK() para medir la velocidad de la consulta, sin usar PHP. La subconsulta debe devolver una sola columna, así que asegúrese de devolver una columna no indexada para que la consulta tenga que tocar los datos en lugar de solo devolver una entrada de índice.

    mysql> SELECT BENCHMARK(1000, 
      (SELECT nonindexed_column FROM standard_accessory WHERE model = 'abc'));
    
  • Tenga en cuenta que Zend_Db_Adapter Lazy-loads su conexión db cuando realiza la primera consulta. Entonces, si hay alguna lentitud en la conexión al servidor MySQL, sucederá cuando cree una instancia del objeto Table (cuando consulta los metadatos). ¿Alguna razón por la que esto podría llevar mucho tiempo? Búsquedas de DNS , tal vez?