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

Różnica wydajności w zapytaniu między cmd a workbench mysql

W oparciu o plan Explain optymalizator nie może używać żadnego indeksu dla ORDER BY rent . Spróbuj więc wykonać następujące czynności:

  1. Upewnij się, że indeks istnieje w dniu rent_date kolumna rents stół. Ten indeks zostanie użyty do optymalizacji ORDER BY klauzula. Może to być indeks jednokolumnowy lub wielokolumnowy (używany w innych scenariuszach). Ale w przypadku wielokolumnowego, musisz upewnić się, że rent kolumna jest pierwszą kolumną w kolejności indeksu.
  2. Upewnij się, że indeks istnieje w id kolumna kickscooters stół. Szczegóły dotyczące indeksu jedno- / wielokolumnowego pozostają takie same jak w punkcie 1.
  3. Upewnij się, że pod serial_number istnieje indeks kolumna kickscooter_states_190614 stół. Szczegóły dotyczące indeksu jedno- / wielokolumnowego pozostają takie same jak w punkcie 1.

Teraz, po sprawdzeniu tych indeksów, wypróbuj oryginalne zapytanie. Najprawdopodobniej optymalizator powinien być w stanie zoptymalizować kolejność łączenia. Poza tym, powyższe zapytanie, możesz wymusić kolejność złączenia za pomocą STRAIGHT_JOIN wskazówka optymalizatora. Wypróbuj również następujące zapytanie i porównaj je:

select
  r.user_id,
  k.id as kickscooter_id,
  st_astext(k.location) as location,
  k.created_at,
  k.serial_number,
  k_st.serial_number as states_serial_number,
  st_astext(k_st.gps) as gps_location,
  k_st.gps_updated_at,
  r.start_time,
  r.end_time
from kickscooters k
straight_join rents r
  on k.id= r.kickscooter_id
straight_join kickscooter_states_190614 k_st
  on k.serial_number = k_st.serial_number
order by r.rent_date
limit 999;


  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:BŁĄD 1227 (42000):Odmowa dostępu - Nie można UTWORZYĆ UŻYTKOWNIKA

  2. Jak podłączyć node.js do serwera mysql i wamp/xampp?

  3. końcowe zera nie trafiają do bazy danych

  4. jak uzyskać przeciwne wyniki z zapytania Laravel

  5. Usuwanie rekordów przed określoną datą