MIN/MAX vs ORDER BY and LIMITChọn MAX hoặc Sắp xếp theo Giới hạn 1
Để theo dõi câu hỏi này: Tôi tìm thấy một số kết quả rất khác so với những gì Sean McSomething mô tả:
Tôi có một bảng với khoảng 300M hàng.
Select max(foo) from bar;
mất khoảng 15 giây. để chạy
Select foo from bar order by foo desc limit 1;
mất 3 giây. để chạy các câu hỏi của
Sean "Có vẻ như MIN() là cách để đi - 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" không giữ trường hợp này ... nhưng tôi không có ý tưởng tại sao. Bất cứ ai có thể cung cấp một lời giải thích?
Chỉnh sửa: Vì tôi không thể hiển thị cấu trúc của bảng tại đây: giả sử thanh đó là bảng trong một ndb_cluster không có quan hệ, foo là điểm dữ liệu tùy ý không có chỉ mục.
Bạn có thể cung cấp 'TẠO TẠO TẠO TABLE bar' - lập chỉ mục hoặc khóa ngoài có thể ảnh hưởng đến nó – Mikhail
Hai câu lệnh SQL bạn không làm điều tương tự, bạn có chắc là bạn đang kiểm tra chính xác không ? Câu lệnh cuối cùng của bạn sẽ phải 'order by foo', không phải' order by bar' cho chúng là cùng loại – nos
Loại động cơ cũng có thể đóng một phần trong hiệu suất truy vấn. –