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

Tối ưu hóa truy vấn mysql UNION

Những gì bạn đang cho thấy về cơ bản là bạn có một vấn đề thiết kế trong mô hình của mình, nơi có vẻ như lựa chọn sai đã được thực hiện khi triển khai super / subtypes. Yêu cầu chức năng của bạn là có dữ liệu (mô phỏng) từ hai bảng khác nhau như một tập hợp thống nhất. Điều này sẽ đơn giản nếu tất cả các hàng đó nằm trong một bảng. Vì vậy, câu hỏi thực sự là tại sao họ không làm như vậy.

Bạn vẫn có thể nhận được truy vấn này nhanh hơn (tôi cho là vậy) nhưng nó rất xấu.

SELECT * FROM 
   (SELECT * FROM (select title, id, date as date_added from test1 
                  ORDER BY date_added DESC LIMIT 0,8) t1
    UNION ALL 
    SELECT * FROM (select title, customer as id, date_added from test2 
                  ORDER BY date_added DESC LIMIT 0,8) t2
   ) joined
ORDER BY date_added DESC
LIMIT 0,8 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. LEN () Tương đương trong MySQL là gì?

  2. CHỌN từ hai bảng dựa trên cùng một id và được nhóm lại

  3. Chuẩn hóa cơ sở dữ liệu cho hệ thống nhắn tin giống facebook

  4. MySQL triển khai Thuật toán truyền tia?

  5. Sử dụng char làm khóa chính / khóa ngoại có phải là không?