2012-12-16 11 views
12

मैं अपनी PHP आधारित वेबसाइट बनाने के लिए तेज़ और कुशल डेटा संग्रहण की तलाश में हूं। मुझे माईएसक्ल के बारे में पता है। क्या मैं एक MySQL डेटाबेस की बजाय अपने सर्वर रूट निर्देशिका में JSON फ़ाइल का उपयोग कर सकता हूं? यदि हां, तो ऐसा करने का सबसे अच्छा तरीका क्या है?क्या हम JSON को डेटाबेस के रूप में उपयोग कर सकते हैं?

+0

मैं इस सवाल का जवाब यहाँ या अंग्रेजी में लिखना चाहिए? –

+0

ठीक नहीं कोई समस्या नहीं। :) – sami

+2

मोंगो डीबी? यह एक JSON डेटाबेस की तरह है ... – McGarnagle

उत्तर

17

आप इस तरह किसी एक फ़ाइल का उपयोग कर सकते हैं, एक JSON फ़ाइल सहित: किसी भी तरह (गूगल PHP फ़ाइल लॉकिंग

  • इसे लॉक करें, तो संभवत: के रूप में खुला समारोह या बदलने के समारोह दायर करने के लिए कोई पैरामीटर जोड़ने के रूप में आसान है संस्करण लॉक करने के लिए नाम)।

  • फ़ाइल से डेटा पढ़ें और इसे आंतरिक डेटा स्टैक्चर पर पार्स करें।

  • आंतरिक डेटा संरचना में डेटा को वैकल्पिक रूप से संशोधित करें।

  • यदि आपने डेटा संशोधित किया है, तो फ़ाइल को 0 लंबाई तक छोटा करें और इसमें नया डेटा लिखें।

  • जितनी जल्दी हो सके, अन्य अनुरोध इंतजार कर किया जा सकता है के रूप में फ़ाइल अनलॉक ...

  • आप पृष्ठ प्रस्तुत करने के लिए आंतरिक संरचना में डेटा का उपयोग कर रख सकते हैं, बस याद है कि यह के रूप में बाहर दिनांकित किया जा सकता है जैसे ही आप फ़ाइल लॉक जारी करते हैं और अन्य HTTP अनुरोध इसे संशोधित कर सकते हैं।

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

नोट: यह बहुत अक्षम है। यदि आप ऐसी साइट बना रहे हैं जहां आप 10 साथ-साथ उपयोगकर्ताओं को कहने की अपेक्षा करते हैं, तो आपको अधिक परिष्कृत योजना का उपयोग करना होगा, या केवल मौजूदा डेटाबेस का उपयोग करना होगा ... इसके अलावा, आपके पास बहुत अधिक डेटा नहीं हो सकता है, क्योंकि JSON को पार्स करना और संशोधित करना JSON समय लगता है।

जब तक आपके पास एक समय में केवल एक उपयोगकर्ता होता है, तब तक यह धीमा और धीमा हो जाएगा क्योंकि डेटा की मात्रा बढ़ जाती है, लेकिन उपयोगकर्ता की संख्या बढ़ जाती है, और अधिक उपयोगकर्ताओं का मतलब है कि और अधिक डेटा, दोनों चीजें तेजी धीमी प्राप्त करने के लिए शुरू करते हैं और आप बहुत जल्द ही सीमा जहां HTTP अनुरोध की समय सीमा समाप्त होने से पहले फ़ाइल अनुरोध पर कार्रवाई के लिए उपलब्ध है शुरू ...

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

+2

अच्छा लेखन-अप। प्रभावी और लंबे समय तक चलने वाले डेटा स्टोर डिजाइन करना * कठिन * है। मुझे याद है जब ब्रायन अकर ने MySQL छोड़ा और ड्रिज़ल शुरू किया; उनका ब्लॉग इन सभी रोचक डिजाइन चुनौतियों और उससे संबंधित निर्णयों से भरा था। मैंने उसे कैसंद्रा के बारे में कुछ टिप्पणियां छोड़ीं, जो एक पूर्ण उड़ा जेएसओएन आधारित वितरित डेटा स्टोर प्रतीत होता है। –

1

आईबीएम इनफॉर्मिक्स 12.10 xC2 का नया संस्करण अब JSON का समर्थन करता है।
लिंक की जांच करें: http://pic.dhe.ibm.com/infocenter/informix/v121/topic/com.ibm.json.doc/ids_json_007.htm

मैनुअल का कहना है कि यह MongoDB ड्राइवरों के साथ संगत है।

बारे इन्फोर्मिक्स JSON अनुकूलता

अनुप्रयोग जो JSON उन्मुख क्वेरी भाषा, MongoDB द्वारा बनाई उपयोग करते हैं, Informix® डेटाबेस में संग्रहीत डेटा के साथ बातचीत कर सकते हैं। इनफॉर्मिक्स डेटाबेस सर्वर अंतर्निहित जेएसओएन और बीएसओएन (बाइनरी JSON) डेटा प्रकार भी प्रदान करता है।

आप मोंगोडीबी समुदाय चालकों का उपयोग जानकारी में JSON दस्तावेज़ों को सम्मिलित करने, अपडेट करने और क्वेरी करने के लिए कर सकते हैं।

सुनिश्चित नहीं है, लेकिन मेरा मानना ​​है कि आप इनोवेटर-सी संस्करण (उत्पादन के लिए स्वतंत्र) का उपयोग कर परीक्षण और उत्पादन वातावरण के लिए बिना किसी लागत के इसका उपयोग कर सकते हैं।

1

मैंने JSON ODM नामक जेसन फाइलों के साथ उपयोग करने के लिए ऑब्जेक्ट दस्तावेज़ मैपर लिखा था, लेकिन थोड़ी देर हो सकती है, लेकिन यदि इसकी अभी भी आवश्यकता है तो यह एमआईटी लाइसेंस के तहत खुला स्रोत है।

यह एक प्रश्न भाषाओं का प्रदान करता है, और कुछ GeoJSON उपकरण