2013-04-19 5 views
10

इस सवाल का संदर्भ में:एंड्रॉइड स्क्लाइट स्ट्रिंग की अधिकतम लंबाई?

How SQLite on Android handles long strings?

इसमें कहा गया है कि 1 अरब में डिफ़ॉल्ट SQLite भंडार। यह वास्तविक साइट के समान है।

हालांकि, व्यक्ति राज्यों के रूप में, यह कम हो सकता है। मैं सोच रहा था कि क्या यह जांचने का एक तरीका है/यह मूल्य क्या है?

धन्यवाद!

उत्तर

5

कोई रास्ता नहीं कार्यावधि में एंड्रॉयड में SQLite सीमा को पढ़ने के लिए है। (SQLite a function for this अपने सी एपीआई में है, लेकिन एंड्रॉइड इसका खुलासा नहीं करता है।)

किसी भी मामले में, मुझे किसी भी एंड्रॉइड विक्रेता के बारे में पता नहीं है जिसने SQLite की सीमाओं को कम कर दिया है। (आमतौर पर, वे कुछ सीमा बढ़ाते हैं या कुछ विकल्प सक्षम करते हैं जब उन्हें अपने ऐप्स में इसकी आवश्यकता होती है या जब वे अनुकूलित करने का प्रयास करते हैं, लेकिन वे कभी भी कुछ बदलने के लिए परेशान नहीं होते हैं।)

+0

ठीक है। धन्यवाद। इसने मेरे प्रश्न का उत्तर उपरोक्त से अधिक उत्तर दिया, जिसमें मैं वास्तव में यह देखने के लिए परीक्षण नहीं कर सकता कि यह कितनी देर तक आसानी से हो सकता है। धन्यवाद फिर से =)। –

+0

मैं विशाल बीएलओबी बनाम फ़ाइल भंडारण के प्रदर्शन पहलू को जानना चाहता हूं। – eRaisedToX

+1

@eRaisedToX इस सवाल के साथ कुछ लेना देना नहीं है। और पहले से ही [दस्तावेज] है (http://www.sqlite.org/intern-v-extern-blob.html)। –

6

एक स्ट्रिंग या ब्लॉब

एक स्ट्रिंग या SQLite में ब्लॉब में बाइट्स की अधिकतम संख्या की अधिकतम लंबाई पूर्वप्रक्रमक मैक्रो SQLITE_MAX_LENGTH द्वारा परिभाषित किया गया है। इस मैक्रो का डिफ़ॉल्ट मान 1 बिलियन (1 हजार मिलियन या 1,000,000,000) है। आप बढ़ाने या एक कमांड लाइन विकल्प इस तरह का उपयोग कर संकलन समय पर इस मूल्य कम कर सकते हैं:

-DSQLITE_MAX_LENGTH=123456789 

वर्तमान कार्यान्वयन केवल एक स्ट्रिंग या ब्लॉब लंबाई 231-1 या 2147483647 और कुछ करने के लिए ऊपर का समर्थन करेंगे हेक्स() जैसे अंतर्निर्मित फ़ंक्शंस उस बिंदु से पहले विफल हो सकते हैं। सुरक्षा के प्रति संवेदनशील अनुप्रयोगों में यह सबसे अच्छा है अधिकतम स्ट्रिंग और ब्लॉब लंबाई बढ़ाने के लिए प्रयास करने के लिए नहीं। वास्तव में, आप अच्छी तरह से कम अधिकतम स्ट्रिंग और ब्लॉब लंबाई के लिए कुछ करने के लिए एक कुछ लाख की रेंज में और अधिक हो सकती है कि यदि संभव है।

SQLite के सम्मिलित करें और का चयन करें प्रसंस्करण के भाग के दौरान, डेटाबेस में प्रत्येक पंक्ति की संपूर्ण सामग्री को एक भी बूँद के रूप में एन्कोड किया गया है। तो SQLITE_MAX_LENGTH पैरामीटर भी एक पंक्ति में बाइट्स की अधिकतम संख्या निर्धारित करता है।

http://www.sqlite.org/limits.html से।

+1

मैं इसे समझता हूं, हालांकि, टीआई कहता है, जब आप संकलित करते हैं तो आप इसे कमांड लाइन विकल्प के माध्यम से बदल सकते हैं। तो सवाल और अधिक था, क्या उन्होंने इसे बदल दिया, और यदि हां, तो इसका नया मूल्य क्या है? या, मैं कैसे पता लगा सकता हूं कि उन्होंने किया है या नहीं? –

संबंधित मुद्दे