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

Tại sao các truy vấn của UNION quá chậm trong MySQL?

Các truy vấn của bạn có bao gồm ORDER BY … LIMIT không mệnh đề?

Nếu bạn đặt ORDER BY … LIMIT sau một UNION , nó được áp dụng cho toàn bộ UNION và không thể sử dụng các chỉ mục trong trường hợp này.

Nếu id là khóa chính, truy vấn này sẽ được thực hiện ngay lập tức:

SELECT  *
FROM    table
ORDER BY id
LIMIT 1

, nhưng cái này sẽ không:

SELECT  *
FROM    table
UNION ALL
SELECT  *
FROM    table
ORDER BY id
LIMIT 1

Điều này cũng có vẻ là do ORDER BY . Sắp xếp một tập hợp nhỏ hơn sẽ nhanh hơn một tập hợp lớn hơn.

Bạn có cần sắp xếp tập hợp kết quả không?

Nếu không, chỉ cần loại bỏ ORDER BY cuối cùng .



  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ỗi khi tạo bảng

  2. Nhận hàng gần đây nhất cho ID đã cho

  3. Quyền của người dùng MySQL

  4. Cách cải thiện hiệu suất AWS của MySQL gấp 2 lần trên Amazon RDS với cùng chi phí

  5. Nhập cơ sở dữ liệu duy nhất từ ​​kết xuất --all-cơ sở dữ liệu