में एकाधिक ग्राफ संग्रहीत करना मेरे पास एक ऐसा एप्लिकेशन है जो एक MySQL तालिका (contact_id, other_contact_id, power, record_at) में रिश्ते की जानकारी संग्रहीत करता है। यह ठीक है अगर मुझे बस इतना करना है कि दो संपर्कों के लिए आपसी संपर्कों की सूची उत्पन्न करने के लिए संपर्क संपर्क कौन हैं या यहां तक कि यह भी है।Neo4J
लेकिन अब मुझे आंकड़े उत्पन्न करने की आवश्यकता है: 'जनवरी 2011 में ताकत 3 या बेहतर तरीके से 2-चरणीय कनेक्शन की कुल संख्या क्या थी' या (मान लीजिए कि प्रत्येक संपर्क समूह का हिस्सा है) 'किस समूह में है अन्य समूहों के लिए कनेक्शन की अधिकांश संख्या इत्यादि।
मैंने तुरंत पाया कि इन आंकड़ों को उत्पन्न करने के लिए एसक्यूएल अनावश्यक वास्तविक तेज़ बन गया है।
इसलिए मैंने एक स्क्रिप्ट लिखी कि किसी भी तारीख के लिए यह स्मृति में एक ग्राफ उत्पन्न करेगा। तब मैं उस ग्राफ के खिलाफ जो भी स्टेटस चाहता था उसे चला सकता था। ग्राफ़ भाग उत्पन्न करने के अलावा - समझने के लिए बहुत आसान और सामान्य रूप से, अधिक प्रदर्शन करने वाला भी।
मेरा अगला विचार उन ग्राफों को कैश करना था, इसलिए जब भी मुझे एक नई स्थिति चलाने की आवश्यकता होती है (या बाद में ग्राफ उत्पन्न होता है: उदाहरण के ग्राफ के लिए मैं कल का ग्राफ लेता हूं और कल से होने वाले किसी भी बदलाव को लागू करता हूं) । मैंने memcached की कोशिश की जो ग्राफ तक बढ़ने तक महान काम किया> 1 एमबी।
तो अब मैं Neo4J जैसे ग्राफ डेटाबेस का उपयोग करने के बारे में सोच रहा हूं।
केवल समस्या है, मेरे पास सिर्फ एक ग्राफ नहीं है। या मैं करता हूं, लेकिन यह वह समय है जो समय के साथ बदलता है और मुझे इसे अलग-अलग संदर्भ समय से पूछने में सक्षम होना चाहिए।
तो, मैं कर सकते हैं: Neo4J और rertrieve में
- दुकान एकाधिक रेखांकन/उन लोगों के साथ अलग से बातचीत? मैं फिर प्रत्येक तारीख के लिए अलग-अलग सामाजिक ग्राफ बना और स्टोर करूंगा।
या
- प्रत्येक किनारे करने के लिए और timestamps से मान्य जोड़ सकते हैं और उचित रूप से ग्राफ फिल्टर करें: यदि ऐसा है तो मैं के लिए "1st सकता है-" एक ग्राफ चाहता था मैं केवल दो noeds के बीच नवीनतम बढ़त का पालन होता है कि "1 मई" से पहले बनाया गया था (और यदि सभी किनारों को 1 मई के बाद बनाया गया था तो उन नोड्स को कनेक्ट नहीं किया जाएगा)।
मैं ग्राफ डेटाबेस के लिए बहुत नया हूं इसलिए किसी भी मदद/पॉइंटर्स/संकेतों की सराहना की जाएगी।
कुछ पढ़ने के बाद मैं सोच रहा हूं कि संदर्भ नोड्स कुंजी हैं या नहीं? मैं प्रत्येक दिन के लिए एक संदर्भ नोड बना सकता हूं और फिर उस दिन के ग्राफ़ को इसके संदर्भ नोड से बना सकता हूं ... – emh
हाय वहाँ, मुझे ग्राफ के लिए एक्सेंट्री नोड्स का उपयोग करना लगता है, और हो सकता है कि उन्हें कुछ संपत्ति के साथ इंडेक्स करें ताकि आप उन्हें न केवल बंद कर सकें एक संदर्भ नोड लेकिन इंडेक्स लुकअप द्वारा यहां सहायता कर सकते हैं। क्या आपके सबग्राफ एंट्री नोड्स के कुछ "मेटा डेटा" गुणों को अनुक्रमणित करना आपको सही प्रारंभिक बिंदु देता है? –