2012-01-13 14 views
7

मैं जैसे बयानों का एक बहुत देखते हैं: "लेखन पर बहुत तेजी से कैसेंड्रा", "कैसेंड्रा है वास्तव में लेखन की तुलना में धीमी पढ़ता है, लेकिन बहुत तेजी से Mysql की तुलना में"सरल संचालन के लिए मैसक्ल से कैसंद्रा बहुत धीमी है?

मेरी windows7 प्रणाली पर: मैं डिफ़ॉल्ट कॉन्फ़िगरेशन के Mysql स्थापित। मैंने डिफ़ॉल्ट विन्यास के PHP5 को स्थापित किया। मैंने डिफ़ॉल्ट कॉन्फ़िगरेशन के कैससंद्रा को स्थापित किया।

mysql पर सरल लिखने परीक्षण करना: "में wp_test (id, title) मूल्यों ('id01', 'परीक्षण') डालें" देता है मुझे परिणाम: 0.0002 (रों) 1000 आवेषण के लिए: 0.1106 (रों)

कैसंड्रा पर सरल लेखन लिखना: $ column_faily-> डालें ('id01', सरणी ('शीर्षक' => 'test')) मुझे परिणाम देता है: 0.005 (0) 1000 प्रविष्टियों के लिए: 1.047 (ओं)

पढ़ने के लिए परीक्षणों के लिए मुझे यह भी मिला कि कैसंद्रा mysql से बहुत धीमी है।

तो सवाल यह है कि क्या यह सही लगता है कि मेरे पास कैसद्रा पर एक लेखन ऑपरेशन के लिए 5ms है? या कुछ गलत है और कम से कम 0.5ms होना चाहिए।

+1

http://stackoverflow.com/questions/4068946/a-bit-of-advice-on-cassandra-vs-mysql और http://stackoverflow.com/questions/2332113/switching-from-mysql-to -कसंद्रा-प्रोस-कंस में कुछ उपयोगी सलाह हो सकती है। –

+0

अगर मुझे लिनक्स सिस्टम पर कैसंद्रा खुश था तो मुझे आश्चर्य नहीं होगा। – ceejayoz

+1

आप केवल 1 रिकॉर्ड के साथ परीक्षण नहीं कर सकते हैं। दस लाख के साथ परीक्षण करें। MySQL लेखन में धीमा हो जाएगा (esp। अगर InnoDB का उपयोग किया जाता है) लेकिन प्राथमिक कुंजी के आधार पर पढ़ने की बात आती है तो यह तेज़ या तेज हो सकती है। –

उत्तर

0

यह संभावना है कि MySQL ड्राइवरों की परिपक्वता, विशेष रूप से PHP 5.3 में बेहतर MySQL ड्राइवरों का परीक्षण, परीक्षणों पर कुछ प्रभाव डाल रहा है। यह भी पूरी तरह से संभव है कि आपकी क्वेरी में डेटा की सादगी परिणाम को प्रभावित कर रही है - शायद 100 मूल्य प्रविष्टियों पर, कैसंड्रा तेज़ी से हो जाता है।

कमांड लाइन से एक ही परीक्षण का प्रयास करें और देखें कि टाइमस्टैम्प क्या हैं, फिर मूल्यों की भिन्न संख्या के साथ प्रयास करें। आप एक भी परीक्षा नहीं कर सकते हैं और उस पर अपना निर्णय आधार बना सकते हैं।

+0

आइए सोचें कि मैं सामान्य स्थिति को जारी करने का प्रयास करता हूं: मेरे पास लाखों उपयोगकर्ता हैं और प्रत्येक उपयोगकर्ता 1000 नाम (पूर्व, पुस्तक शीर्षक) अपलोड करना चाहता है। और मेरे परीक्षणों से (कमांड लाइन से ही) प्रत्येक उपयोगकर्ता 1 सेकंड से अधिक परिणाम का इंतजार करेगा। यदि मेरे पास लाखों से कम उपयोगकर्ता हैं तो mysql मुझे 0.1 सेकंड देता है। क्या यह सही है या नहीं? –

2

कैसंड्रा समानांतरता और बैचिंग से काफी लाभ उठाता है। 100 धागे में से प्रत्येक पर 1 मिलियन आवेषण करने का प्रयास करें (प्रत्येक के अपने कनेक्शन & 100 के बैचों में) और देखें कि कौन से तेज़ हैं।

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

+0

प्रश्न एक प्रक्रिया प्रति 1 या 1000 प्रविष्टियों की सामान्य गति के बारे में था (मान लें कि एक उपयोगकर्ता क्लिक बटन की तरह)। कृपया मुझे सही करें, अगर मैं इन सभी 1000 आवेषण समानांतर में भेजता हूं तो मुझे गति 1 सेकंड से तेज हो जाती है? –

11

जब लोग कहते हैं कि "कैसंद्रा MySQL से तेज़ है", तो उनका मतलब है कि जब आप डेटा के टेराबाइट्स से निपट रहे हैं और कई एक साथ उपयोगकर्ता हैं। कैसंद्रा (और कई वितरित नोएसक्यूएल डेटाबेस) कई नोड्स पर सैकड़ों एक साथ पाठकों और लेखकों के लिए अनुकूलित किया गया है, क्योंकि MySQL (और अन्य रिलेशनल डीबी) के विपरीत वास्तव में एक एकल नोड पर तेज़ी से अनुकूलित किया गया है, लेकिन गिरने लगता है टुकड़े जब आप उन्हें कई नोड्स में स्केल करने का प्रयास करते हैं। रास्ते में इस व्यापार-बंद का एक सामान्यीकरण है- पूर्ण तेज़ डिस्क I/O सादे पुरानी यूनिक्स फ्लैट फाइलें हैं, और कई विलंब-संवेदनशील वित्तीय अनुप्रयोग उन कारणों से उनका उपयोग करते हैं।

यदि आप अगले फेसबुक का निर्माण कर रहे हैं, तो आपको कैसंद्रा की तरह कुछ चाहिए क्योंकि एक भी MySQL बॉक्स कभी भी हजारों एक साथ पढ़ने और लिखने की सजा तक खड़ा नहीं होगा, जबकि कैसंद्रा के साथ आप सैकड़ों डेटा तक पहुंच सकते हैं नोड्स और हैंडल जो आसानी से लोड हो। scaling up vs. scaling out देखें।

एक अन्य उपयोग केस तब होता है जब आपको डेटा के टेराबाइट्स या पेटबाइट्स में बहुत सी बैच प्रोसेसिंग पावर लागू करने की आवश्यकता होती है। कैसंद्रा या एचबेस बहुत अच्छे हैं क्योंकि वे मैपरेडस के साथ एकीकृत हैं, जिससे आप डेटा प्रसंस्करण पर अपनी प्रसंस्करण चला सकते हैं।MySQL के साथ, आपको डेटा निकालने और प्रोसेसिंग नोड्स के ग्रिड में इसे स्प्रे करने की आवश्यकता होगी, जो बहुत से नेटवर्क बैंडविड्थ का उपभोग करेगी और बहुत सारी अनियंत्रित जटिलताओं को लागू करेगी।

+1

मैंने कैसंद्रा के लाभों के बारे में बहुत कुछ पढ़ा है। मेरा सवाल एकल सर्वर के लिए एक लिखने के ऑपरेशन के बारे में 5ms था। क्या यह गति सही लगता है? उदाहरण के लिए, अगर कोई मुझे बताता है कि उसका mysql एक लिखने के ऑपरेशन के लिए 5ms लेता है (औसत सर्वर के बारे में सोचने देता है), तो मैं उसे प्रतिक्रिया देता हूं "आमतौर पर तेज़ होना चाहिए" –

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