Trong trường hợp xấu nhất, khi bạn đang xem trường không được lập chỉ mục, sử dụng MIN()
yêu cầu một đường chuyền đầy đủ duy nhất của bảng. Sử dụng SORT
và LIMIT
yêu cầu một tập tin. Nếu chạy với một bảng lớn, có thể sẽ có sự khác biệt đáng kể về hiệu suất đạt được. Là một điểm dữ liệu giai thoại, MIN()
mất .36 giây trong khi SORT
và LIMIT
lấy .84 giây so với bảng 106.000 hàng trên máy chủ nhà phát triển của tôi.
Tuy nhiên, nếu bạn đang xem một cột được lập chỉ mục, thì sự khác biệt sẽ khó nhận thấy hơn (điểm dữ liệu vô nghĩa là 0,00 giây trong cả hai trường hợp). Tuy nhiên, nhìn vào đầu ra của giải thích, có vẻ như MIN()
có thể chỉ cần lấy giá trị nhỏ nhất từ chỉ mục ('Chọn bảng được tối ưu hóa' và hàng 'NULL') trong khi SORT
và LIMIT
vẫn cần thực hiện duyệt chỉ mục có thứ tự (106.000 hàng). Tác động thực tế về hiệu suất có thể không đáng kể.
Có vẻ như MIN()
là cách để đi - nó nhanh hơn trong trường hợp xấu nhất, không thể phân biệt được trong trường hợp tốt nhất, là SQL tiêu chuẩn và thể hiện rõ ràng nhất giá trị mà bạn đang cố gắng đạt được. Trường hợp duy nhất có vẻ như sử dụng SORT
và LIMIT
sẽ là mong muốn, như mson
đã đề cập, nơi bạn đang viết một phép toán chung tìm giá trị N trên cùng hoặc dưới cùng từ các cột tùy ý và không đáng để viết ra hoạt động trong trường hợp đặc biệt.