Tôi đoán đó là do “mật độ” của các bản ghi cùng khóa trên đĩa. Tôi nghĩ rằng các bản ghi có cùng id được lưu trữ dày đặc (tức là ít khối) và những bản ghi có cùng liên kết được lưu trữ ở mức thưa thớt (tức là , được phân phối cho một số lượng lớn các khối). Nếu bạn đã chèn các bản ghi theo thứ tự id, tình huống này có thể xảy ra.
Giả sử rằng:1. có 10.000 bản ghi, 2. chúng được lưu trữ theo thứ tự như (id, link) =(1, 1), (1, 2), ..., (1, 100), (2, 1) ..., and3. 50 bản ghi có thể được lưu trữ trong một khối.
Trong giả định ở trên, khối # 1 ~ # 3 bao gồm các bản ghi (1, 1) ~ (1, 50), (1, 51) ~ (1, 100) và (2, 1) ~ (2, 50) tương ứng.
Khi bạn SELECT * FROM edges WHERE id=1
, chỉ có 2 khối (# 1, # 2) được tải và quét. Mặt khác, SELECT * FROM edges WHERE link=1
yêu cầu 50 khối (# 1, # 3, # 5, ...), mặc dù số lượng hàng là như nhau.