2011-10-13 17 views
12

क्या कोई मुझे किसी लेख पर इंगित कर सकता है, या विशेष रूप से इंडेक्सड डीबी (आदर्श रूप से क्रोम में) के प्रदर्शन का कुछ अनुभव प्रदान कर सकता है - प्रदर्शन, डालने और प्रदर्शन को अपडेट करने जैसा क्या है?इंडेक्सड डीबी प्रदर्शन

ऐसा लगता है कि कुछ हज़ार रिकॉर्ड से अधिक डेटा सेट के लिए यह बहुत अधिक उपयोग करने योग्य नहीं है, लेकिन मुझे यकीन नहीं है कि यह केवल अनुक्रमण की कमी के कारण नहीं है - निश्चित रूप से अवधारणात्मक रूप से यह धीमा नहीं हो सकता है वेब स्टोरेज की तुलना में दोनों संभवत: कुंजी-मूल्य भंडारण आंतरिक रूप से उपयोग करते हैं?

धन्यवाद

+0

यह एक दिलचस्प सवाल है। मैं अगले कुछ हफ्तों में कुछ परीक्षण करूँगा और यहां कुछ अपडेट प्राप्त होने पर एक अपडेट पोस्ट करूंगा। – buley

उत्तर

10

मैं हाल ही में WebSQL और IndexedDB के बीच कुछ प्रदर्शन की तुलना की थी। आश्चर्य की बात है, इंडेक्सड डीबी जीता (जिसे मैं उम्मीद नहीं कर रहा था)।

http://blog.oharagroup.net/post/16394604653/a-performance-comparison-websql-vs-indexeddb


संपादित करें: ऊपर URL नीचे है, लेकिन archive.org पर उपलब्ध: http://web.archive.org/web/20160418233232/http://blog.oharagroup.net/post/16394604653/a-performance-comparison-websql-vs-indexeddb

सारांश में:

WebSQL ~ 750-850ms के बीच औसत पर ले जाता क्वेरी को पूरा करने और परिणामों को प्रस्तुत करने के लिए; और इंडेक्सड डीबी सटीक एक ही परिणाम देने के लिए औसतन ~ 300-350ms लेता है।

+0

यह वेब एसक्यूएल और अनुक्रमित डीबी के बीच एक अच्छी तुलना है। क्या हमारे पास बड़ी मात्रा में डेटा के संबंध में अनुक्रमित डीबी का प्रदर्शन मैट्रिक्स हो सकता है? –

+0

बहुत अच्छी प्रतिक्रिया। धन्यवाद। – Sidebp

+0

@ स्कॉट: मुझे लगता है कि आपने हाल ही में क्वेरी के लिए उपयोग की गई क्वेरी को बदल दिया है ताकि यह अब पंक्ति का उपयोग न करे। क्या आपने परीक्षणों को फिर से किया - इंडेक्स के साथ - इस बदलाव के बाद? मेरा सुझाव है कि आपके पास प्रत्येक कुंजी कॉलम ('प्रोग्राम (प्रोग्राम आईडी) ',' सीरीज़ (सीरीजआईडी) 'और' एपिसोड (एपिसोड आईडी) 'पर एक इंडेक्स है। आप [EXPLAIN QUERY PLAN] (http://www.sqlite.org/eqp.html) का उपयोग यह देखने के लिए कर सकते हैं कि SQLite इंडेक्स का उचित उपयोग कर रहा है या नहीं। –

8

मैंने देखा है कि केवल प्रदर्शन प्रदर्शन-अप the one produced by @Scott (the other answer to this question का लेखक) है। दुर्भाग्यवश, उनका आलेख वेब SQL डेटाबेस न्याय नहीं करता है, क्योंकि यह परिणाम सेट के आकार को प्रतिबंधित करने के लिए एक अक्षम हैविंग क्लॉज का उपयोग करता है। मैं स्कॉट की एसक्यूएल फेरबदल, की जगह होने, ग्रुप द्वारा और वाम के साथ (लगभग) बराबर शामिल हों कहां और उप चयन:

SELECT p.Name AS ProgramName, 
     s.rowid, 
     s.Name, 
     s.NowShowing, 
     s.ProgramID, 
     (SELECT COUNT(*) FROM Episode WHERE SeriesID = s.rowid AND STATUS IN ('Watched', 'Recorded', 'Expected') OR STATUS IS NULL) AS EpisodeCount, 
     (SELECT COUNT(*) FROM Episode WHERE SeriesID = s.rowid AND STATUS = 'Watched') AS WatchedCount, 
     (SELECT COUNT(*) FROM Episode WHERE SeriesID = s.rowid AND STATUS = 'Recorded') AS RecordedCount, 
     (SELECT COUNT(*) FROM Episode WHERE SeriesID = s.rowid AND STATUS = 'Expected') AS ExpectedCount 
    FROM Program p 
    JOIN Series s ON p.rowid = s.ProgramID 
WHERE s.NowShowing IS NOT NULL OR 
     EXISTS (SELECT * FROM Episode WHERE SeriesID = s.rowid AND STATUS IN ('Recorded', 'Expected')) 
ORDER BY CASE 
      WHEN s.NowShowing IS NULL THEN 1 
      ELSE 0 
     END, 
     s.NowShowing, 
     p.Name 

इस बारे में 28 बार मूल की तुलना में तेजी से होता है - 20 एमएस बनाम अपने कंप्यूटर पर 560 एमएस - जो, स्कॉट की संख्या से निकालने के द्वारा, समकक्ष इंडेक्सड डीबी की तुलना में इसे लगभग 10 गुना तेज बनाता है। मैं इसकी पुष्टि करने में सक्षम नहीं था क्योंकि इंडेक्स डीडी कोड मेरे ब्राउज़र में काम नहीं करता है, प्रतीत होता है कि एपीआई परिवर्तनों के कारण।

मुझे ऊपर लिखा गया "(लगभग)" समझा जाना चाहिए। स्कॉट के मूल एसक्यूएल और मेरे पास अलग-अलग अर्थ हैं: मेरे एपिसोडकाउंट पर एक gratuitous WHERE क्लॉज - जिसका एक इंडेक्स सर्च के साथ टेबल स्कैन को बदलने का असर पड़ता है - अगर यह सभी संभावित स्थिति मानों को कवर नहीं करता है तो कुछ एपिसोड गिनने में असफल हो सकता है। इस खंड को हटाने से निष्पादन समय को 40 एमएस तक दोगुनी करने के खर्च पर अंतर समाप्त हो जाता है।

ध्यान दें कि, पहले, मैं discussed with Scott अपने एसक्यूएल करने के लिए एक छोटे परिवर्तन यह है कि यह भी एक 40 एमएस समय प्राप्त होता है।

अद्यतन: स्कॉट को उनके article को अपडेट करने के लिए स्कॉट के बहुत धन्यवाद।

1

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

मैंने कुछ इंडेक्स डीडी प्रदर्शन परिणामों के साथ एक पेपर प्रकाशित किया है। https://www.researchgate.net/profile/Stefan_Kimak/publication/281065948_Performance_Testing_and_Comparison_of_Client_Side_Databases_Versus_Server_Side/links/55d3465c08ae0a3417226302/Performance-Testing-and-Comparison-of-Client-Side-Databases-Versus-Server-Side.pdf

0

मुझे भारी थोक डालने (100.000 - 200.000 रिकॉर्ड) के साथ समस्याएं थीं। मैंने डेक्सी लाइब्रेरी का उपयोग करके मेरी सभी इंडेक्स डीडी प्रदर्शन समस्याओं को हल किया है। इसमें यह महत्वपूर्ण विशेषता है:

डेक्सी के पास किक-गधा प्रदर्शन है। यह थोक तरीके का लाभ लेती है जो इंडेक्सड डीबी में एक अच्छी तरह से ज्ञात विशेषता नहीं है जो प्रत्येक ऑनस्यूफ ईवेंट को सुने बिना सामान स्टोर करना संभव बनाता है। यह अधिकतम प्रदर्शन को अधिकतम करता है।

Dexie: https://github.com/dfahlander/Dexie.js

BulkPut() ->http://dexie.org/docs/Table/Table.bulkPut()

+1

का परीक्षण और समझना आसान होगा मैंने कुछ प्रदर्शन परिणामों के साथ एक पेपर प्रकाशित किया है। https://www.researchgate.net/profile/Stefan_Kimak/publication/281065948_Performance_Testing_and_Comparison_of_Client_Side_Databases_Versus_Server_Side/links/55d3465c08ae0a3417226302/Performance-Testing-and-Comparison-of-Client-Side- डेटाबेस- वर्सस- सर्वर- Side.pdf – stefan

+0

इस पेपर के लिए धन्यवाद – Francesco

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