मुझे लगता है कि यह डिस्क पर समान-कुंजी-रिकॉर्ड के "घनत्व" के कारण है। मुझे लगता है कि एक ही आईडी वाले रिकॉर्ड घने (यानी, कुछ संख्या में ब्लॉक) में संग्रहीत होते हैं और एक ही लिंक वाले स्पैस में संग्रहीत होते हैं (यानी। , बड़ी संख्या में ब्लॉकों में वितरित)। यदि आपने आईडी के क्रम में रिकॉर्ड डाला है, तो यह स्थिति हो सकती है।
मान लें कि:1। 10,000 रिकॉर्ड हैं, 2. वे क्रम में संग्रहीत हैं जैसे (आईडी, लिंक) =(1, 1), (1, 2),..., (1, 100), (2, 1)..., और3। एक ब्लॉक में 50 रिकॉर्ड स्टोर किए जा सकते हैं।
उपरोक्त धारणा में, ब्लॉक #1~#3 में रिकॉर्ड (1, 1)~(1, 50), (1, 51)~(1, 100) और (2, 1)~(2, 50) शामिल हैं। क्रमशः।
जब आप SELECT * FROM edges WHERE id=1
, केवल 2 ब्लॉक (#1, #2) लोड और स्कैन किए जाने हैं। दूसरी ओर, SELECT * FROM edges WHERE link=1
पंक्तियों की संख्या समान होने के बावजूद 50 ब्लॉक (#1, #3, #5,...) की आवश्यकता है।