लंबी स्ट्रिंग्स के डेटाबेस के लिए सबसे अच्छा तरीका


12

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

जिस तरह से मुझे यह करने के बारे में पता है कि अभी एक SQL डेटाबेस है। हालाँकि, मुझे ऐसा नहीं लगता कि यह एक अच्छा समाधान है क्योंकि जहाँ तक मैंने देखा है, ये डेटाबेस इस प्रकार या आकार के डेटा के लिए उपयोग नहीं किए जाते हैं। क्या यह जाने का सही तरीका है या इस डेटा को स्टोर करने का बेहतर तरीका है? क्या कच्चे तार को संचय करने से बेहतर तरीका है?


क्या आपने पूर्ण-पाठ खोज में देखा है? en.wikipedia.org/wiki/Full_text_search
FrustratedWithFormsDesigner

कृपया "लंबी" 1k, 5M, 1GB परिभाषित करें?
जेम्स एंडरसन

आपको "कच्चे" तार क्यों पसंद नहीं हैं? क्या डेटा वास्तव में तार है, या यह संरचित डेटा है? क्या आप इसके साथ कुछ करने की योजना बनाते हैं जो तार के लिए काम नहीं करेगा? आपके प्रश्न में कोई स्पष्ट कारण नहीं है कि डेटाबेस उपयुक्त क्यों नहीं होगा। तार के साथ एक ही (या शायद CLOBS अगर वे बहुत बड़े हैं और आप किस डेटाबेस का उपयोग करते हैं) पर निर्भर करता है।
Psr

मैं उन्हें संचय करने के कुछ चतुर तरीके का उल्लेख कर रहा था, शायद कुछ प्रकार के संपीड़न के माध्यम से, सादा तार नहीं। मैं यहाँ डेटाबेस के आकार के बारे में चिंतित हूँ।
gsingh2011

1
आप कौन से RDBMS का उपयोग कर रहे हैं? ओरेकल के पास टेक्स्ट को संभालने और खोजने के लिए कुछ उत्कृष्ट समर्थन हैं।
मैथ्यू फ्लिन

जवाबों:


19

Mongodb महान है, लेकिन आप SQL जानते हैं। खेतों में लंबे उत्तर संग्रहीत करने में कुछ भी गलत नहीं है। आप छवियों या यहां तक ​​कि फ़ाइलों को SQL में संग्रहीत कर सकते हैं। मुझे लगता है कि अधिकतम क्षेत्र का आकार 2gb है।

मैं लगभग सकारात्मक हूं यह जवाब खुद एक टेबल फ़ील्ड में कहीं संग्रहीत किया जा रहा है।

वहाँ के रूप में उनमें से हजारों होने के नाते, कोई समस्या नहीं है। यहां तक ​​कि लाखों भी एक मुद्दा नहीं होना चाहिए। यदि आप कीवर्ड या कुछ के लिए फ़ील्ड खोज रहे हैं, तो आप पूर्ण पाठ अनुक्रमण का उपयोग करने पर विचार कर सकते हैं। लेकिन मैं कोशिश करता हूं कि जब तक मुझे कोई समस्या न दिखाई दे, मैं उसका अनुकूलन नहीं कर सकता। कंप्यूटर सस्ते हैं, भंडारण मूल रूप से मुफ्त है।


11
जब तक आपको वास्तव में समस्या न हो, तब तक +1 न करें!
ग्रैंडमास्टरबी

4
अधिकतम फ़ील्ड आकार ANSI SQL में निर्दिष्ट नहीं है, यह DBMS पर निर्भर करता है (और आमतौर पर कुछ अन्य कारक, जैसे charset, स्तंभ डेटा प्रकार, भंडारण इंजन, OS, आदि)।
tdammers

6

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

तकनीकी ज्ञान और समझ के आधार पर तकनीकी निर्णय लें, भावनाओं का नहीं।


5

हाँ यह जाने का सही तरीका है। SQL डेटाबेस में स्ट्रिंग्स को संग्रहीत करना वह है जो आप करना चाहते हैं। DB में मेरी एक सारणी में सादा डेटा का एक बड़ा भाग है और यह अच्छा प्रदर्शन करता है।

यदि आप भंडारण स्थान के बारे में चिंतित हैं - याद रखें कि यह सस्ता है!

यदि आप प्रदर्शन के बारे में चिंतित हैं - तो चिंता न करें, एक अच्छा डेटाबेस बड़े पैमाने पर (या बाहर) कर सकता है, हालांकि आप इसमें कितना डेटा फेंकना चाहते हैं।

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


2

बड़े तार या बाइनरी डेटा संग्रहीत करने में कोई समस्या नहीं है। मैंने एक डेटाबेस के साथ बाइनरी डेटा के एक से अधिक टेराबाइट के साथ काम किया और बहुत अच्छी तरह से (पोस्टग्रेज) काम किया और एकमात्र खराब चीज बैकअप समय था।

बड़ा सवाल यह है: "क्या आपको इस पाठ में निरंतर खोज करने की आवश्यकता होगी?"

यदि आप पाठ में तार खोजने जा रहे हैं, तो आप एक सूचकांक समाधान में सोच सकते हैं:

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