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

Mysql Union time V.S. từng truy vấn riêng biệt

UNION toán tử yêu cầu các bộ giá trị trùng lặp (hàng) phải được loại bỏ tập kết quả trước khi bất kỳ hàng nào được trả về. Đó thực sự là một hoạt động DUY NHẤT SORT. Điều đó tương đối rẻ đối với các tập kết quả nhỏ, nhưng đối với các tập hợp lớn, nó có thể tốn nhiều tài nguyên trên thời gian máy chủ (tức là mất nhiều thời gian.)

Về lý thuyết, kết hợp các truy vấn với một UNION ALL chứ không phải là UNION toán tử sẽ nhanh nhất, vì nó sẽ loại bỏ ( n -1) đi vòng đến cơ sở dữ liệu, so với chạy các truy vấn riêng biệt. Nhưng đối với các giá trị lớn của n , bạn sẽ gặp phải giới hạn thực tế về kích thước của văn bản SQL (kích thước gói tối đa).

Đưa ra sự lựa chọn giữa UNION toán tử và các truy vấn riêng biệt, đối với một tập hợp kết quả lớn, các truy vấn riêng biệt sẽ ít tốn tài nguyên hơn ở phía máy chủ.

Nói tóm lại, đó thực sự là sự cân bằng giữa việc nặng nhọc cho mỗi truy vấn so với việc nặng một thao tác SORT UNIQUE.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mật khẩu mặc định của mysql trong máy chủ ubuntu 16.04

  2. lấy theo vĩ độ và kinh độ trong laravel 5 với các tham gia khác

  3. Tìm kiếm và đặt hàng trong PHP MySQL theo mức độ liên quan

  4. Cửa sổ chọn SQL xung quanh hàng cụ thể

  5. Nhiều câu lệnh chèn trong ODBC ExecuteNonQuery (C #) đơn lẻ