Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zend Framework i Mysql - bardzo wolne

Wskazówki:

  • Przechowuj tabelę w pamięci podręcznej metadane . Domyślnie Zend_Db_Table próbuje odkryć metadane dotyczące tabeli za każdym razem, gdy jest tworzony obiekt tabeli. Użyj pamięci podręcznej, aby zmniejszyć liczbę przypadków, w których musi to zrobić. Albo zakoduj go na stałe w swojej klasie Table (uwaga:tabele db nie są modelami ).

  • Użyj EXPLAIN do analizy planu optymalizacji MySQL. Czy skutecznie wykorzystuje indeks?

    mysql> EXPLAIN SELECT * FROM standard_accessory WHERE model = 'abc';
    
  • Użyj BENCHMARK() do pomiaru szybkości zapytania, nie używając PHP. Podzapytanie musi zwrócić pojedynczą kolumnę, więc upewnij się, że zwracasz kolumnę nieindeksowaną, aby zapytanie musiało dotyczyć danych, a nie tylko zwracać wpis indeksu.

    mysql> SELECT BENCHMARK(1000, 
      (SELECT nonindexed_column FROM standard_accessory WHERE model = 'abc'));
    
  • Zauważ, że Zend_Db_Adapter leniwy-ładuje swoje połączenie z bazą danych po wykonaniu pierwszego zapytania. Więc jeśli wystąpi spowolnienie połączenia z serwerem MySQL, stanie się to podczas tworzenia instancji obiektu Table (gdy zapyta o metadane). Czy może to zająć dużo czasu? Wyszukiwania DNS może?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. rails + MySQL na OSX:Biblioteka nie załadowana:libmysqlclient.18.dylib

  2. Jaki jest odpowiednik ELT() w SQL Server w MySQL?

  3. Dlaczego MySQL nie używa indeksu do lepszego porównania?

  4. mysql pokazuje dostępne przedziały czasowe i przedziały czasowe zajęte z tabeli

  5. Zmiana znaczenia dwukropka „:” w zapytaniach JPA