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

Prosta wydajność podzapytań MySQL

W pierwszym zapytaniu mysql powinien wybrać podzbiór z mdl_enrol tabela i ukończ mdl_user_enrolments i mdl_userdata do pamięci. Więc wybierasz dużo danych w pamięci. Po wykonaniu tej czynności - dołączasz do danych. Jeśli nie ma wystarczającej ilości pamięci, aby umieścić wszystkie dane, dopóki nie zostaną one połączone i odesłane do klienta - tworzona jest tymczasowa tabela na dysku twardym. Najprawdopodobniej optymalizator mysql nie jest wystarczająco fajny, aby naprawić błąd i spróbować ulepszyć plan wykonania. Dlatego jest powolny.

Natomiast w przypadku drugiego zapytania mysql wie, co dokładnie musi wybrać i wybiera tylko niewielką ilość wymaganych danych. W tym scenariuszu możliwe jest użycie indeksów (zakładając, że zostały utworzone wszystkie potrzebne indeksy). Więc to jest szybkie.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Naruszenie ograniczeń php Błąd 1452

  2. Haszowanie za pomocą crypt w PHP

  3. Używanie parametrów z zapytaniem ADO (mysql/MyConnector)

  4. MYSQL + PHP do wyświetlania danych z dwóch wierszy jako jednej kolumny

  5. jak używać $_GET w mysqli_query?