2010-01-06 20 views
18

मैं एक एम्बेडेड लड़का हूं, डेटाबेस डेटाबेस नहीं। मुझे एक मौजूदा प्रणाली को फिर से डिजाइन करने के लिए कहा गया है जिसमें कई स्थानों पर बाधाएं हैं।एम्बेडेड के लिए "सर्वश्रेष्ठ" डेटाबेस क्या है?

एम्बेडेड डिवाइस 220 एमएचजेड पर चल रहे एआरएम 9 प्रोसेसर के आसपास आधारित है।

1k डेटा (अधिकतम 8 दायर) के साथ 50k प्रविष्टियों (250k तक बढ़ सकता है) का डेटाबेस होना चाहिए। यह अनुमानित है - यदि आवश्यक हो तो मैं अधिक सटीक आंकड़े प्राप्त करने का प्रयास कर सकता हूं।

वे वर्तमान में SqlLite 2 और योजना का उपयोग कर रहे एक लौ युद्ध शुरू करने के बिना SqlLite 3.

को स्थानांतरित करने के लिए - मैं एक पूरा घ/b ​​नौसिखिया सिर्फ सलाह लेने हूँ - कि "सर्वश्रेष्ठ" निर्णय है? मुझे एहसास है कि यह एक "स्ट्रिंग का टुकड़ा कितना लंबा हो सकता है?" सवाल है, लेकिन किसी भी संकेतक woudl का स्वागत है। मुझे & शोध पढ़ने में बहुत कुछ नहीं लगता है, लेकिन उम्मीद है कि आप मुझे एक उड़ान शुरू करने के लिए बाहर ले जा सकते हैं। धन्यवाद।

p.s फिर, कुल पुनर्लेखन, एम्बेडेड लिनक्स के साथ भी चिपक नहीं सकता है, लेकिन ईकोस पर स्विच करें, डी/बी प्रारूपों के बीच एक बार रूपांतरण के बारे में ज्यादा चिंता न करें। ओह, और एक्सेस कम से कम हर कुछ सेकंड में कम होना चाहिए।


संपादित करें: ठीक है, ऐसा लगता है कि वे 30k प्रविष्टियों केवल 5 या 6 क्षेत्रों प्रत्येक की (100k या अधिक तक पहुंच सकता है) है, लेकिन उनमें से कम से कम 3 एक रिकार्ड के लिए एक खोज कुंजी हो सकता है। वे "कोई डी/बी नहीं कर रहे हैं, क्योंकि डेटा बहुत आसान है", लेकिन ऐसा लगता है कि कई चाबियों के साथ, हम क्विकॉर्ट() टाइप सर्च (रिकर्सिव, बाइनरी सर्च) जैसे फैंसी सामान का उपयोग नहीं कर सके)। "नो डी/बी" पर कोई विचार, बस डेटा संरचनाएं?

Btw, एक प्रमुख 800k है - यकीन नहीं कितनी अच्छी तरह SqlLite कि (शायद के साथ "कोई घ/b" मैं छोटे कुछ करने के लिए है कि 800k हैश करने के लिए है?)

+2

वर्गमीटर – Toad

+0

हाँ के साथ चिपकने के लिए एक अच्छी पसंद की तरह लगता है, मैं भी sqllite की सिफारिश करेंगे। – junmats

+1

क्या डाटाबेस भी आपकी बाधा है? आपकी संख्या से, यह तब तक ठीक होना चाहिए जब तक कि आपका संग्रहण वास्तव में धीमा न हो। याद रखें कि 10 साल पहले इसे काफी तेज मशीन माना जाता था। –

उत्तर

21

इसके अलावा SQLite डेटाबेस को लगभग सभी मोबाइल ऑपरेटिंग सिस्टम द्वारा चुना गया है। एसक्यूएलसाइट के साथ एंड्रॉइड, आईफोन ओएस और सिम्बियन जहाज जो मुझे सोचता है कि जनशक्ति को उन फोनों (लगभग हमेशा एआरएम) में प्रोसेसर के लिए अनुकूलित करने के लिए खर्च किया गया था।

11

मैं SQLite के साथ चिपके रहते हैं होता है, यह व्यापक रूप से है संभालती है समर्थित और सुविधाओं में बहुत समृद्ध।

1

मैं एम्बेड प्रणाली है, लेकिन iphone उपयोग ARM9 से परिचित नहीं हूँ, और sqlite डीबी

6
  • Firebird (पहले Interbase) के रूप में अच्छी तरह से एम्बेडेड काम करने का दावा।

  • HypersonicQL (एचक्यूएल) छोटा और तेज़ है और यह भी एम्बेडेड उपयोग के लिए उपयुक्त होने का दावा करता है।

हां, मेरे पास दावा का बैक अप लेने का कोई व्यक्तिगत अनुभव नहीं है।

2

मैं भी sqlite3 का सुझाव दूंगा। इसका उपयोग कई प्रसिद्ध अनुप्रयोगों द्वारा किया जाता है।

4

SQLite शायद एक सुंदर सुरक्षित शर्त है। हालांकि, यदि आपके आवेदन के लिए प्रदर्शन वास्तव में महत्वपूर्ण है और आपको एक रिलेशनल डेटाबेस की आवश्यकता नहीं है, तो मैं सुझाव दूंगा कि आप बर्कले डीबी link text पर एक नज़र डालें। बर्कले डीबी हालांकि एक संबंधपरक डेटाबेस नहीं है। दूसरे शब्दों में, यदि आपका डेटा अलग-अलग तालिकाओं में समूहित होता है और आपको लगातार परिणाम सेटों की क्वेरी करने की आवश्यकता होती है जिन्हें एक से अधिक तालिका से डेटा से संबंधित होने की आवश्यकता होती है, तो आपको शायद एक संबंधपरक डेटाबेस की आवश्यकता होती है।बर्कले डीबी लुकअप टेबल जैसे कुछ के लिए बेहतर अनुकूल है (यानी, डेटा कुछ तालिकाओं में व्यवस्थित होता है और आपको इच्छित परिणाम सेट तैयार करने के लिए उनमें से एक से अधिक डेटा पूछने की आवश्यकता नहीं होती है)। बर्कले डीबी बहुत तेज़ है लेकिन इससे अधिक लाभ उठाने के लिए इसे अपने अंत में अधिक काम की आवश्यकता होगी।

+0

बस एक ही टेबल, 5 या 6 फ़ील्ड, लेकिन उनमें से तीन को एक अद्वितीय कुंजी के रूप में उपयोग किया जा सकता है ... और बहुत सारे रिकॉर्ड हैं - 30k, 100k हो सकता है, संभवतः 256k – Mawg

+1

इस मामले में, मैं कहूंगा कि बर्कले डीबी आपके आवेदन के लिए बिल्कुल सही है। यदि प्रदर्शन आपके आवेदन के लिए बेहद महत्वपूर्ण है, तो मुझे लगता है कि आपको बर्कले डीबी में देखना चाहिए। – figurassa

+0

यहां स्क्लाइट और बर्कले डीबी की प्रदर्शन तुलना है: http://www.sqlite.org/cvstrac/wiki?p=KeyValueDatabase कुंजी-मूल्य डेटा संग्रहण के लिए –

3

यदि आप कोई विकल्प चाहते हैं, तो berkeleydb देखने के लायक है। यह नींद के सॉफ्टवेयर के स्वामित्व में था, लेकिन अब ऑरैकल से उपलब्ध है। यह एक barebones डेटाबेस इंजन है; सीधे प्रोग्राम करने योग्य है (एक एसक्यूएल के बजाय) फ्रंटएंड। इसका उपयोग कई प्रमुख डेटाबेस में कोर इंजन के हिस्से के रूप में किया जाता है, और कई एम्बेडेड उपकरणों में डेटाबेस के रूप में - यह राउटर में रूटिंग टेबल प्रबंधित करने के लिए विशेष रूप से लोकप्रिय होता था। यह अधिक फैशनेबल सेटअप के लिए इन दिनों अनदेखा कर देता है, लेकिन मुझे यह सभ्य, ठोस पाया गया है और जिन नंबरों के बारे में आप बात कर रहे हैं, उनके लिए बिजली तेज हो सकती है।

2

SQLite ठीक है, लेकिन यदि आप 6 मिलियन पंक्तियों (सभी एक ही समय में, या किसी भी आंशिक भाग) से अधिक डेटा शामिल करने, अपडेट करने और हटाने की योजना बनाते हैं, तो इसका उपयोग करने की योजना नहीं है। बात यह है कि VACCUM कीवर्ड को हर समय और फिर किया जाना चाहिए और यह स्वचालित होने पर भी प्रदर्शन के लिए एक बहुत ही गंभीर बाधा बन जाती है।

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