sql >> Database teknologi >  >> RDS >> Mysql

Zend Framework og Mysql - meget langsomt

Tip:

  • Cache tabellen metadata . Som standard er Zend_Db_Table forsøger at finde metadata om tabellen, hver gang dit tabelobjekt instansieres. Brug en cache til at reducere antallet af gange, den skal gøre dette. Ellers hårdkode den i din tabelklasse (bemærk:db-tabeller er ikke modeller ).

  • Brug EXPLAIN at analysere MySQL's optimeringsplan. Bruger det et indeks effektivt?

    mysql> EXPLAIN SELECT * FROM standard_accessory WHERE model = 'abc';
    
  • Brug BENCHMARK() at måle hastigheden af ​​forespørgslen, ikke ved hjælp af PHP. Underforespørgslen skal returnere en enkelt kolonne, så sørg for at returnere en ikke-indekseret kolonne, så forespørgslen skal berøre dataene i stedet for blot at returnere en indeksindgang.

    mysql> SELECT BENCHMARK(1000, 
      (SELECT nonindexed_column FROM standard_accessory WHERE model = 'abc'));
    
  • Bemærk at Zend_Db_Adapter lazy-indlæser sin db-forbindelse, når du laver den første forespørgsel. Så hvis der er nogen langsomhed med at oprette forbindelse til MySQL-serveren, vil det ske, når du instansierer Table-objektet (når det forespørger om metadata). Enhver grund til at det kan tage lang tid? DNS-opslag måske?



  1. Kopier værdier fra en kolonne til en anden i samme tabel

  2. Generer datoer mellem datointervaller

  3. Sådan får du sidste 1 times data i MySQL

  4. Sådan omdøbes en MySQL-database