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

Cách cải thiện thứ tự theo hiệu suất với các phép tham gia trong mysql

Thử loại bỏ distinct . Đó là một kẻ giết người về hiệu suất. Tôi không chắc tại sao truy vấn đầu tiên của bạn hoạt động nhanh chóng; có lẽ MySQL đủ thông minh để tối ưu hóa nó.

Tôi sẽ thử:

SELECT tt.id
FROM tracked_twitter tt
WHERE EXISTS (SELECT 1
              FROM twitter_content tc INNER JOIN  
                   tracker_twitter_content ttc
                   ON  tc.id =  ttc.twitter_content_id
              WHERE  ttc.tracker_id =  88 AND
                     tt.id =  tc.tracked_twitter_id
             )
ORDER BY tt.followers_count DESC ;

Đối với phiên bản này, bạn muốn lập chỉ mục trên:tracked_twitter(followers_count, id) , twitter_content(tracked_twitter_id, id)tracker_twitter_content(twitter_content_id, tracker_id) .



  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 tham gia các bảng trong đó tên bảng là một trường của một bảng khác

  2. khi tôi sử dụng Hệ thống cơ sở dữ liệu MySQL với Jena2, tôi nhận được java.lang.NoSuchMethodError

  3. Có cách nào để hiển thị mệnh đề WHERE chỉ cho một trường trong MySQL không?

  4. Tại sao vòng lặp này không hiển thị một đối tượng cập nhật được đếm sau mỗi năm giây?

  5. Cái nào nhanh hơn:nhiều CHÈN đơn hay một CHÈN nhiều hàng?