कौन सा बेहतर है H2 या HSQLDB? [बन्द है]


85

HSQLDB 2.0 जल्द ही रिलीज़ होने वाली है। मुझे आश्चर्य है कि अगर यह H2 को बेहतर बनाएगा, जहां तक ​​मुझे पता है, ज्यादातर उपयोगकर्ता एचएसक्यूएलडीबी की तुलना में एच 2 पसंद करते हैं। मुझे एचएसक्यूएलडीबी 2.0 के एमवीसीसी समर्थन में दिलचस्पी है। मैंने सीखा है कि H2 पर MVCC अभी भी प्रायोगिक है। समर्थन / प्रलेखन, संगामिति, प्रदर्शन के संबंध में, जो दोनों के बीच बेहतर है?


6
आपका उपयोग मामला क्या है? आप अपने डेटा के खिलाफ कौन से प्रश्न करेंगे? आपका डेटा कितना बड़ा है? क्या आपका आवेदन पढ़ना या लिखना भारी है?
मैट

27
एक और पूरी तरह से अच्छा सवाल बंद हो गया।
rtcarlson

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

जवाबों:


61

कृपया ध्यान दें कि मैंने यह उत्तर 2011 में प्रदान किया था। यह पुराना हो सकता है

मेरी कंपनी एक डेटाबेस एब्स्ट्रक्शन लाइब्रेरी ( jOOQ ) विकसित करती है , जो दोनों डेटाबेस का समर्थन करती है। हमारे एकीकरण परीक्षण बहुत सारी कार्यक्षमता को कवर करते हैं, जिसमें संग्रहीत प्रक्रियाओं और कार्यों, सरणियों, नेस्टेड चयनों आदि को शामिल करना शामिल है। मुझे लगता है कि डीएमएल का संबंध है, जहां तक ​​छोटे डेटाबेसों की HSQLDB 2.1तुलना में थोड़ा तेज है H2 1.3

हालांकि, डीडीएल संचालन में एचएसक्यूएलडीबी अत्यधिक आउटपरफॉर्मर एच 2 के साथ-साथ एक छोटे डेटाबेस के लिए भी (उदाहरण के लिए, हर डेटाबेस स्टार्टअप पर जेएवीएसी के साथ नए सिरे से संग्रहीत कार्यों के कारण) उदाहरण को शुरू / बंद कर रहा है । यह आपके द्वारा संग्रहीत कार्यों को संग्रहीत करने के तरीके पर निर्भर करता है। जाहिर है, यह एक बल्कि jOOQ- विशिष्ट "मुद्दा" है, थॉमस मुलर की टिप्पणी भी देखें।

दूसरी ओर, मैं उपयोगकर्ता ट्रैशगोड से सहमत हूं, आपको अपने लिए एक उचित स्कीमा और उपयोग-केस के खिलाफ प्रदर्शन का परीक्षण करना चाहिए।


7
संग्रहीत कार्य केवल फिर से संकलित किए जाते हैं यदि उन्हें "स्रोत कोड के रूप में" संग्रहीत किया जाता है, जो कि एचएसक्यूएलडीबी में उपलब्ध नहीं है (जहां तक ​​मुझे पता है)। यदि आप पूर्व संकलित संग्रहीत कार्यों का उपयोग करते हैं, तो ऐसा कोई ओवरहेड नहीं है।
थॉमस म्यूलर

2
@ThomasMueller: धन्यवाद, मुझे यह नहीं पता था। यह सामूहिक रूप से मेरे एकीकरण परीक्षणों को गति देने में मदद करेगा। मैं अपने उत्तर को अपने अनुसार ढाल लूंगा। HSQLDB में PL / SQL जैसी प्रक्रियात्मक भाषा है, जो अधिक शक्तिशाली IMO है। मुझे यकीन नहीं है, अगर वह भाषा पूर्व-संकलित या व्याख्या की गई है ...
लुकास एडर

45

दोनों HyperSQLऔर H2 Databaseकाफी पारदर्शी होते हैं, इसलिए परीक्षा सबसे अच्छा तरीका निर्धारित करने के लिए जो एक विशेष उपयोग के लिए अधिक उपयुक्त है हो सकता है। एक और दूसरे से तुलना करने वाले उपलब्ध हैं। वे एक साझा विरासत साझा करते हैं , और दोनों खुले स्रोत हैं


10
"कचरा कर सकते हैं एक महत्वपूर्ण डिजाइन उपकरण है" - नियंत्रण रेखा। सीआईटी।
22

3
उस "विरासत" लिंक के लिए धन्यवाद। वे इतिहास को शानदार ढंग से संक्षेप में प्रस्तुत करते हैं। सबसे पहले HSQLDB (हाइपरसोनिक एसक्यूएल) फिर H2 आया, लेकिन HSQLDB और H2 एक ही कोड को साझा नहीं करते हैं और आज की तरह अलग-अलग प्रोजेक्ट हैं।
specialk1st

1
@ specialk1st: सही है, इस मामले में विरासत एक सामान्य लेखक है, सामान्य कोड नहीं।
ट्रैशगॉड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.