Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Sự khác biệt về hiệu suất trong truy vấn giữa cmd và bàn làm việc mysql

Dựa trên kế hoạch Giải thích, trình tối ưu hóa không thể sử dụng bất kỳ chỉ mục nào cho ORDER BY rent . Vì vậy, hãy thử những cách sau:

  1. Đảm bảo rằng một chỉ mục tồn tại trên rent_date cột rents bàn. Chỉ mục này sẽ được sử dụng để tối ưu hóa ORDER BY mệnh đề. Nó có thể là một chỉ mục cột đơn hoặc một chỉ mục nhiều cột (được sử dụng trong các trường hợp khác). Tuy nhiên, trong trường hợp có nhiều cột, bạn cần đảm bảo rằng rent là cột đầu tiên trong thứ tự chỉ mục.
  2. Đảm bảo rằng một chỉ mục tồn tại trên id cột của kickscooters bàn. Thông tin chi tiết về chỉ mục một cột / nhiều cột vẫn giống như ở điểm # 1.
  3. Đảm bảo rằng một chỉ mục tồn tại trên serial_number cột của kickscooter_states_190614 bàn. Thông tin chi tiết về chỉ mục một cột / nhiều cột vẫn giống như ở điểm # 1.

Bây giờ, sau khi đảm bảo các chỉ mục này, hãy thử truy vấn ban đầu của bạn. Rất có thể, trình tối ưu hóa sẽ có thể tối ưu hóa Thứ tự tham gia. Ngoài ra, với truy vấn trên, bạn có thể thực thi thứ tự tham gia bằng cách sử dụng STRAIGHT_JOIN gợi ý trình tối ưu hóa. Vì vậy, hãy thử cả truy vấn sau và điểm chuẩn giữa hai trong số chúng:

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. Làm thế nào để điền vào các lỗ hổng trong các trường tự động tăng dần?

  2. MySQLi không chuẩn bị được một câu lệnh

  3. QSql ::Out và QSql ::InOut có được sử dụng ngoài việc gọi một thủ tục store không?

  4. Một mục câu đố trên mỗi trang (chương trình câu đố php / mysql)

  5. Nhận các trường tương tự được lặp lại nhiều nhất trong cơ sở dữ liệu MySQL