Để thực hiện tùy chọn nào sẽ tốt hơn cho các tập dữ liệu lớn sẽ được cập nhật?CASE và nhiều truy vấn UPDATE cho các tập dữ liệu lớn - Hiệu suất
Sử dụng câu lệnh CASE hoặc truy vấn cập nhật riêng lẻ?
trường hợp ví dụ:
UPDATE tbl_name SET field_name =
CASE
WHEN condition_1 THEN 'Blah'
WHEN condition_2 THEN 'Foo'
WHEN condition_x THEN 123
ELSE 'bar'
END AS value
cá nhân truy vấn Ví dụ:
UPDATE tbl_name SET field_name = 'Blah' WHERE field_name = condition_1
UPDATE tbl_name SET field_name = 'Foo' WHERE field_name = condition_2
UPDATE tbl_name SET field_name = 123 WHERE field_name = condition_x
UPDATE tbl_name SET field_name = 'bar' WHERE field_name = condition_y
LƯU Ý: Khoảng 300.000 hồ sơ sẽ được cập nhật và câu lệnh CASE sẽ có khoảng 10.000 KHI điều kiện. Nếu sử dụng các truy vấn riêng lẻ, số lượng khoảng 10.000 cũng là
"Nếu sử dụng các truy vấn riêng lẻ thì khoảng 10.000" - có lẽ bảng tạm thời đã tham gia sẽ là một ý tưởng tốt hơn .... –
+1 Mitch ... không nhận thấy phạm vi khi tôi viết câu trả lời của mình. Về nguyên tắc, 'CASE' sẽ hiệu quả hơn nhưng có thể không ở quy mô đó. – JNK
Thú vị tôi đã không nghĩ đến cách tiếp cận này, Cảm ơn –