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

Wyjaśnienie kolejności łączenia w celu tworzenia tabel tymczasowych

  1. Odnosi się do kolejności, w jakiej optymalizator je ocenia (dołącz do kolejki). Optymalizator może nawet nie być świadomy kolejności tabel w instrukcji sql.

  2. Nie, nie jest to sprzeczne z tym, co zostało napisane w punkcie 3, ponieważ odpowiedź wyraźnie pisze (podkreślenie moje):

Wynik i wydajność to dwie różne rzeczy. Właściwie jest pozytywny komentarz do odpowiedzi mówiący, że

  1. Możesz powiedzieć optymalizatorowi, którą tabelę ma przetworzyć jako pierwszą, używając straight_join :

Musisz jednak uważać na to, ponieważ wiążesz rękę optymalizatora. Zobacz to SO temat dotyczący omawiania zalet i wad straight_join.

Liczba rekordów, gdzie kryteria, indeksy - wszystkie one odgrywają swoją rolę w podejmowaniu przez optymalizatora decyzji o kolejności przetwarzania tabel. Nie ma magicznej kuli, trzeba się trochę pobawić i prawdopodobnie można oszukać optymalizatora, aby zmienił kolejność stołów.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wstawić kolumny w określonej pozycji w istniejącej tabeli?

  2. Odmówiono połączenia z MySQL na laravel i MAMP

  3. Zapytania Django ORM nie wybierają nowych obiektów

  4. Zapytaj mysql i eksportuj dane jako CSV w PHP

  5. Czy powinienem używać backticków, czy nie, podczas ucieczki słów kluczowych w MySQL?