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

Powolne zapytanie MySQL z dołączeniem, mimo że EXPLAIN pokazuje dobry plan

Nie jestem ekspertem w tej dziedzinie, ale oto kilka przemyśleń:

Szybkość zapytania trwa dłużej, gdy g.F2 zmiany wynikają z buforowania. MySQL zapisze wyniki dla każdego zapytania (aż do zapełnienia pamięci podręcznej), ale nowe zapytania są uruchamiane na pustej pamięci podręcznej, więc trwają dłużej. Nie powinieneś na tej podstawie optymalizować. (Zobacz Jak dokładnie mierzyć )

Na podstawie twoich informacji nie mogę stwierdzić, czy g lub gp tabela ma większą szczegółowość (wygląda na to, że gp ?) w where klauzula, ale możesz zamiast tego spróbować podzapytania. (Zobacz Jak zmusić wewnętrzne zapytanie do wykonania jako pierwsze )

Jeśli chodzi o profilowanie, możliwe, że osiągasz fizyczny próg, taki jak przekroczenie alokacji pamięci RAM (używanie wymiany jest katastrofalne dla wydajności), co nie byłoby oczywiste z explain , czy też explain jest po prostu źle w tym przypadku.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapytanie, aby uzyskać wszystkie wiersze z poprzedniego miesiąca

  2. Suma kolumn w użyciu mysqli i php

  3. hive.HiveImport:FAILED:SemanticException [Błąd 10072]:Baza danych nie istnieje:

  4. Dane zostały obcięte dla kolumny?

  5. Pobieranie danych z MySQL przy użyciu PHP w czasie rzeczywistym?