इसका उत्तर है हां, यह मायने रखता है, और यह बहुत मायने रखता है, लेकिन आमतौर पर ज्यादा नहीं।
सभी I/O एक पृष्ठ स्तर पर किए जाते हैं (आमतौर पर आपके OS के आधार पर 2K या 4K)। पंक्तियों के लिए कॉलम डेटा एक दूसरे के बगल में संग्रहीत किया जाता है, सिवाय इसके कि जब पृष्ठ भर जाता है, उस स्थिति में डेटा दूसरे (आमतौर पर अगले) पृष्ठ पर लिखा जाता है।
आपके द्वारा चुने गए कॉलम (तालिका परिभाषा के आधार पर) के बीच के कॉलम के लिए ऑन-डिस्क डेटा स्थान जितना अधिक होगा, चयनित कॉलम के लिए डेटा (कभी-कभी) अलग-अलग पृष्ठों पर होने की संभावना उतनी ही अधिक होगी। किसी भिन्न पृष्ठ पर होने के परिणामस्वरूप अतिरिक्त I/O संचालन हो सकता है (यदि अन्य पृष्ठ पर कोई अन्य पंक्तियाँ नहीं चुनी जा रही हैं)। सबसे खराब स्थिति में, आपके द्वारा चुना गया प्रत्येक कॉलम एक अलग पेज पर हो सकता है।
यहां एक उदाहरण दिया गया है:
create table bad_layout (
num1 int,
large1 varchar(4000),
num2 int,
large2 varchar(4000),
num3 int,
large3 varchar(4000)
);
create table better_layout (
num1 int,
num2 int,
num3 int,
large1 varchar(4000),
large2 varchar(4000),
large3 varchar(4000)
);
तुलना करना:bad_layout से num1, num2, num3 चुनें; num1, num2, num3 को बेहतर_लेआउट से चुनें;
क्योंकि bad_layout के लिए प्रत्येक अंक स्तंभ मूल रूप से एक अलग पृष्ठ पर होगा, प्रत्येक पंक्ति को 3 i/O संचालन की आवश्यकता होगी। इसके विपरीत, बेहतर_लेआउट के लिए संख्या कॉलम आमतौर पर एक ही पृष्ठ पर होने वाले हैं।
bad_layout क्वेरी को निष्पादित होने में लगभग 3 गुना अधिक समय लगने की संभावना है।
अच्छा टेबल लेआउट क्वेरी के प्रदर्शन में बड़ा बदलाव ला सकता है। आपको उन स्तंभों को रखने का प्रयास करना चाहिए जो आमतौर पर तालिका लेआउट में एक दूसरे के जितना संभव हो सके एक साथ चुने जाते हैं।