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

MySQL i zestaw zagnieżdżony:powolne JOIN (bez indeksu)

Ach, właśnie przyszło mi to do głowy.

Ponieważ prosisz o wszystko w tabeli, mysql postanawia zamiast tego użyć pełnego skanowania tabeli, ponieważ uważa to za bardziej wydajne.

Aby uzyskać pewne wykorzystanie kluczy, dodaj kilka filtrów, aby i tak ograniczyć wyszukiwanie każdego wiersza we wszystkich tabelach.

Aktualizowanie odpowiedzi:

Twoje drugie zapytanie nie ma sensu. Pozostaje ci dołączenie do lca, ale masz w nim filtr, który samo w sobie neguje lewe złącze. Również szukasz danych w ostatnim kroku zapytania, co oznacza, że ​​będziesz musiał przejrzeć wszystkie lt, lc i lca, aby znaleźć swoje dane. Ponadto nie masz indeksu z kolumną „type” po lewej stronie w lokalizacjach, więc nadal potrzebujesz pełnego skanu tabeli, aby znaleźć swoje dane.

Gdybyś miał kilka przykładowych danych i przykład tego, co próbujesz osiągnąć, być może łatwiej byłoby ci pomóc.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySql count() zwraca 0, jeśli nie znaleziono żadnych rekordów

  2. Kod błędu:1822, gdy typy danych są zgodne, z kluczem złożonym

  3. Pobierz adres IP klienta w mysql

  4. Rails 3 ActiveRecord:Uporządkuj według skojarzeń

  5. Jak naprawić MySql:zbyt duży rozmiar kolumny indeksu (migracja Laravel)