Mysql
 sql >> база данни >  >> RDS >> Mysql

Разлика в производителността в заявката между cmd и workbench mysql

Въз основа на плана Explain оптимизаторът не може да използва никакъв индекс за ORDER BY rent . Така че опитайте следното:

  1. Уверете се, че на rent_date съществува индекс колона от rents маса. Този индекс ще се използва за оптимизиране на ORDER BY клауза. Може да бъде индекс с една колона или с няколко колони (използва се в други сценарии). Но в случай на такава с няколко колони, трябва да се уверите, че rent колоната е първата колона в реда на индекса.
  2. Уверете се, че в id съществува индекс колона на kickscooters маса. Подробностите за индекса с една колона/много колони остават същите като в точка №1.
  3. Уверете се, че в serial_number съществува индекс колона на kickscooter_states_190614 маса. Подробностите за индекса с една колона/много колони остават същите като в точка №1.

Сега, след като осигурите тези индекси, опитайте оригиналната си заявка. Най-вероятно оптимизаторът трябва да може да оптимизира поръчката за присъединяване. Освен това, с горната заявка, можете да наложите реда на присъединяване, като използвате STRAIGHT_JOIN съвет за оптимизатор. Така че, опитайте и следната заявка и направете сравнение между двете:

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 на Mac 10.8.5

  2. SQL заявка:списък на всички идентификатори, които са били активни през даден интервал от време, сортирани по началния им час

  3. Как да изберете идентификатор на ред на mysql за клауза WHERE при UPDATE, INSERT, DELETE чрез php?

  4. Примери за DAYOFYEAR() – MySQL

  5. какво е известието:идентификатор на ресурс #9?