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

Optymalizacja MySQL na podstawie explain

spróbuj sprzężenia wewnętrznego zamiast podzapytania, które domyślnie kieruje zapytaniem bez uruchamiania na danych, ale śledzenie zapytania może ci pomóc.

WYBIERZ User .id , User .username , User .password , User .role , User .created , User .modified , User .email , User .other_user_id , User .first_name , User .last_name , User .place_id , Resume .id , Resume .user_id , Resume .other_resume_id , Resume .other_user_id , Resume .file_extension , Resume .created , Resume .modified , Resume .is_deleted , Resume .has_file , Resume .is_stamped , Resume .is_active

FROMstreetofwalls .users JAKO User
LEWO DOŁĄCZ my_database .attempts AS Attempt WŁĄCZONE (Attempt .user_id =User .id ORAZ Attempt .test_id !=5) DOŁĄCZ PO LEWEJ my_database .reports AS Resume WŁĄCZONE (Resume .user_id =User .id )

, my_database .users JAKO Użytkownik1

LEWY DOŁĄCZ my_database .tags_users AS TagUser włączony (User1 .id =TagUser .user_id )

LEWY DOŁĄCZ my_database .tags AS Tag włączony (TagUser .tag_id =Tag .id )

GDZIEUser .id =User1 .id ORAZ Attempt .test_id =8ORAZ Attempt .score> 60
ORAZ Resume .has_file =1ORAZ Tag .id ='8' ORAZ Tag .id !='3'GROUP WEDŁUG User .id ORDER BY Attempt .score OPIS;




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. stały sposób wykonywania mysqli->set_charset()?

  2. Zapytanie MySQL z aliasem bez indeksu

  3. Błąd składni SQL, liczba, data/godzina

  4. Dołącz do dwóch tabel ze wszystkimi rekordami

  5. Zakodowany użytkownik mysql i hasło w Node.js