मैं सैद्धांतिक रूप से अनंत मात्रा में डेटा के लिए एक फ्लैट फ़ाइल का उपयोग करने के खिलाफ सलाह दूंगा।
यदि आपके पास सैद्धांतिक रूप से अनंत मात्रा में डेटा है, तो आपको यादृच्छिक अभिगम की आवश्यकता होती है , जिसका अर्थ है कई फाइलें या एक डेटाबेस - या एक अनुक्रमित फ्लैट-फ़ाइल प्रारूप, जिसमें फ़ाइल सिस्टम या एक डेटाबेस द्वारा पहले से हल की गई अनुक्रमण समस्याओं को फिर से हल करना शामिल है ।
यदि आप कई फाइलों में अपना हिस्सा फैलाते हैं, तो (-110, 5000) पर चंक मिलना केवल "% APPDATA% / game / map / -110 / 5000.dat" (या कुछ अन्य फ़ाइल नाम, जो आप चाहते हैं, कहने की बात है) उन्हें संकुचित करना शुरू करें)। डेटाबेस को केवल एक क्वेरी की आवश्यकता होती है। यदि किसी चंक के पास कोई डेटा नहीं है, तो आप बस कुछ भी स्टोर नहीं कर सकते। एक भी फ्लैट फ़ाइल बल्ले से सही रैंडम एक्सेस की गति और सुविधा प्रदान नहीं करती है।
मनमाने आकार की एकल फ़ाइल में, तेज़ रैंडम एक्सेस के लिए, आपके पास किसी भी डेटा की स्थिति की गारंटी होनी चाहिए, जिसका अर्थ है एक इंडेक्स का उपयोग करना (क्योंकि आपके डेटा चंक्स के माध्यम से एक कच्ची बाइनरी खोज प्रदर्शन को नुकसान पहुंचाती है, और आपके ग्रिड का निर्माण करती है "रिक्त" स्पॉट के साथ फ़ाइल आपको बाइटे 56 की समस्या देता है )। एक बार जब आप एक इंडेक्सिंग सिस्टम विकसित करते हैं, तो इसे दक्षता दें और अपने आप को एक एपीआई लिखें, आपने फ़ाइल सिस्टम या डेटाबेस जैसी किसी चीज़ को फिर से बनाया है। जब तक आप वास्तव में ऐसा करने से कुछ हासिल नहीं करते हैं कि यह निवेश के लायक नहीं है। उदाहरण के लिए, स्टीम उनके GCF / NCF फ़ाइल स्वरूपों से बड़े पैमाने पर लाभान्वित होता है।
यदि आप अपने बचत पर कुछ सुरक्षा चाहते हैं, तो भी ऐसा करना संभव है। उदाहरण के लिए, आप प्रत्येक व्यक्ति को एन्क्रिप्ट कर सकते हैं। उन्हें हटाने से रोकने के लिए, आपके पास मौजूदा सहेजे गए डेटा के आधार पर एक केंद्रीय हैश हो सकता है। यदि सहेजा गया डेटा हैश से मेल नहीं खाता है (और आपका प्रोग्राम परिवर्तन का कारण नहीं है), तो एक चंक को हटा दिया गया है।