Tôi có một bảng MyISAM lớn. Nó đang tiếp cận 1 triệu hàng. Về cơ bản nó là một danh sách các mục và một số thông tin về chúng.Tại sao lớn hơn so với bằng tạo nên sự khác biệt trong MySQL SELECT?
Có hai chỉ số:
- chính: ID mục
- ngày (ngày) và col (int).
tôi chạy hai truy vấn:
SELECT * FROM table WHERE date = '2011-02-01' AND col < 5 LIMIT 10
SELECT * FROM table WHERE date < '2011-02-01' AND col < 5 LIMIT 10
Người đầu tiên kết thúc trong ~ 0,0005 giây và lần thứ hai trong ~ 0,05 giây. Đó là sự khác biệt 100X. Có sai lầm khi tôi mong đợi cả hai điều này chạy với tốc độ gần như giống nhau? Tôi không được hiểu rõ các chỉ số. Làm cách nào để tăng tốc truy vấn thứ hai?
Đối với cả hai truy vấn, bao nhiêu hồ sơ phù hợp với vị đầu tiên? –
40.000 cho bằng, 55.000 cho số ít hơn, do đó, nó không phải là một sự khác biệt lớn – burger
@bigmac thử thay đổi định dạng chỉ mục và xem điều gì xảy ra. –