sql >> Databasteknik >  >> RDS >> Mysql

Zend Framework och Mysql - väldigt långsamt

Tips:

  • Cachelagra tabellen metadata . Som standard är Zend_Db_Table försöker upptäcka metadata om tabellen varje gång ditt tabellobjekt instansieras. Använd en cache för att minska antalet gånger den måste göra detta. Eller hårdkoda den i din tabellklass (observera:db-tabeller är inte modeller ).

  • Använd EXPLAIN att analysera MySQL:s optimeringsplan. Använder det ett index effektivt?

    mysql> EXPLAIN SELECT * FROM standard_accessory WHERE model = 'abc';
    
  • Använd BENCHMARK() för att mäta hastigheten på frågan, utan att använda PHP. Underfrågan måste returnera en enskild kolumn, så se till att returnera en oindexerad kolumn så att frågan måste röra data istället för att bara returnera en indexpost.

    mysql> SELECT BENCHMARK(1000, 
      (SELECT nonindexed_column FROM standard_accessory WHERE model = 'abc'));
    
  • Observera att Zend_Db_Adapter lazy-lastar sin db-anslutning när du gör den första frågan. Så om det är någon långsamhet i anslutningen till MySQL-servern, kommer det att hända när du instansierar Table-objektet (när det frågar efter metadata). Någon anledning till att detta kan ta lång tid? DNS-sökningar , kanske?



  1. Hur lägger jag till varje rad i MySQL?

  2. Hur använder man alfanumeriska fält med BETWEEN-satsen i Mysql?

  3. DataTables sida 2 av paginering som inte anropar Magnific Popup

  4. Ändra precisionen för numerisk kolumn i Oracle