দীর্ঘ স্ট্রিংয়ের একটি ডাটাবেসের জন্য সর্বোত্তম পন্থা


12

আমার একটি ডাটাবেসে প্রশ্নোত্তর সংরক্ষণ করতে হবে। প্রশ্নগুলি এক থেকে দুটি বাক্য হবে, তবে উত্তরগুলি দীর্ঘ হবে, কমপক্ষে একটি অনুচ্ছেদ, সম্ভবত আরও।

এখনই এটি করার একমাত্র উপায় হ'ল এসকিউএল ডাটাবেস। যাইহোক, আমি এটি একটি ভাল সমাধান বলে মনে করি না কারণ যতদূর আমি দেখেছি, এই ডাটাবেসগুলি এই ধরণের বা আকারের ডেটার জন্য ব্যবহৃত হয় না। এটি কি যাওয়ার সঠিক উপায় বা এই ডেটা সংরক্ষণ করার জন্য আরও ভাল উপায় আছে? কাঁচা স্ট্রিংগুলি সংরক্ষণ করার চেয়ে ভাল উপায় কি নেই?


আপনি কি পূর্ণ-পাঠ্যের সন্ধানে সন্ধান করেছেন? en.wikedia.org/wiki/Ful_text_search
হতাশ

দয়া করে "দীর্ঘ" 1 কে, 5 এম, 1 জিবি সংজ্ঞা দিন?
জেমস অ্যান্ডারসন

আপনি "কাঁচা" স্ট্রিং পছন্দ করেন না কেন? তথ্যটি আসলে স্ট্রিংগুলিতে থাকে, না এটি ডেটা কাঠামোগত? আপনি কি এটির সাথে এমন কিছু করার পরিকল্পনা করছেন যা স্ট্রিংয়ের জন্য কাজ করবে না? আপনার প্রশ্নের কোনও স্পষ্ট কারণ নেই কেন একটি ডাটাবেস উপযুক্ত হবে না। স্ট্রিংগুলির সাথে একই (বা সম্ভবত তারা খুব বড় হয়ে থাকে এবং আপনি কোন ডেটাবেস ব্যবহার করেন তার উপর নির্ভর করে CLOBS)।
PSr

আমি সেগুলি সংরক্ষণের কিছু চতুরতার সাথে উল্লেখ করছি, সম্ভবত কোনও ধরণের সংক্ষেপণের মাধ্যমে, প্লেটেক্সট স্ট্রিংগুলিতে নয়। আমি এখানে মূলত ডাটাবেসের আকার সম্পর্কে উদ্বিগ্ন।
gsingh2011

1
আপনি কোন আরডিবিএমএস ব্যবহার করছেন? পাঠ্য পরিচালনা ও অনুসন্ধানের জন্য ওরাকলের কিছু দুর্দান্ত সমর্থন রয়েছে।
ম্যাথু ফ্লিন

উত্তর:


19

মংডব দুর্দান্ত, তবে আপনি এসকিউএল জানেন। ক্ষেত্রগুলিতে দীর্ঘ উত্তর সংরক্ষণ করার জন্য কোনও ভুল নেই। আপনি এসকিউএল এ ছবি বা এমনকি ফাইল সঞ্চয় করতে পারেন। আমি মনে করি সর্বোচ্চ ক্ষেত্রের আকার 2 জিবি।

আমি প্রায় ইতিবাচক এই উত্তরটি নিজেই কোথাও একটি টেবিল ক্ষেত্রে সংরক্ষণ করা হচ্ছে।

তাদের হাজার হাজার থাকার জন্য, কোনও সমস্যা নেই। এমনকি কয়েক মিলিয়ন একটি সমস্যা হওয়া উচিত নয়। আপনি কীওয়ার্ড বা কোনও কিছুর জন্য ক্ষেত্রটি সন্ধান করতে পারলে আপনি সম্পূর্ণ পাঠ্য সূচিকর্মকে কাজে লাগিয়ে বিবেচনা করতে পারেন। তবে আমি যতক্ষণ না সমস্যা দেখি ততক্ষণ অনুকূল না করার চেষ্টা করি। কম্পিউটারগুলি সস্তা, স্টোরেজটি মূলত বিনামূল্যে।


11
আপনার আসলে সমস্যা না হওয়া পর্যন্ত অনুকূলিতকরণের বিষয়ে +1!
গ্র্যান্ডমাস্টারবি

4
সর্বাধিক ক্ষেত্রের আকার এএনএসআই এসকিউএল-তে নির্দিষ্ট করা হয়নি, এটি ডিবিএমএসের উপর নির্ভর করে (এবং সাধারণত কয়েকটি অন্যান্য বিষয় যেমন চরসেট, কলাম ডেটা টাইপ, স্টোরেজ ইঞ্জিন, ওএস ইত্যাদি)।
tmadmers

6

ডাটাবেসে (এসকিউএল বা অন্যথায়) দীর্ঘ পাঠ সংরক্ষণে কোনও সমস্যা নেই। ইন্টারনেটের প্রতিটি ব্লগ এন্ট্রি (চিন্তাভাবনা ওয়ার্ডপ্রেস), নিউজ আর্টিকেল, এবং ফোরাম পোস্ট (পিএইচপিবিবি) কীভাবে সঞ্চিত তা স্থির করে দেয়। আমি স্ট্যাক এক্সচেঞ্জের সেটআপের নির্দিষ্ট বিশদগুলি জানি না, তবে আমি নিশ্চিত যে আপনার প্রশ্নটি একটি ডাটাবেসেও সংরক্ষিত আছে। বেশিরভাগ এসকিউএল ডাটাবেসে TEXTকেবল কোনও দৈর্ঘ্যের পাঠ্যগত তথ্য সংরক্ষণের উদ্দেশ্যে ফিল্ডের ধরণ বা সমতুল্য থাকে। অনেকের কাছে জায়গাতে পুরো পাঠ্য অনুসন্ধানের ব্যবস্থা রয়েছে।

প্রযুক্তিগত জ্ঞান এবং বোঝার উপর ভিত্তি করে প্রযুক্তিগত সিদ্ধান্ত নিন, অনুভূতি নয়।


5

হ্যাঁ, এটি যাওয়ার সঠিক উপায়। একটি এসকিউএল ডাটাবেসে স্ট্রিংগুলি সংরক্ষণ করা আপনি যা করতে চান তা। ডিবিতে আমার একটি টেবিলের একগাদা প্লেইন টেক্সট ডেটা রয়েছে এবং এটি সূক্ষ্ম সম্পাদন করে।

আপনি যদি স্টোরেজ স্পেস সম্পর্কে চিন্তিত হন - মনে রাখবেন এটি সস্তা!

আপনি যদি পারফরম্যান্স সম্পর্কে চিন্তিত হন - তবে চিন্তা করবেন না, একটি ভাল ডাটাবেস আপনি এতে যে পরিমাণ ডেটা ফেলতে চান তা স্কেল করতে (বা আউট) করতে পারে।

আপনি যে সর্বশেষ কাজটি করতে চান তা হ'ল এটির জন্য এখনই অনুকূলিতকরণ শুরু করা (এটির কোনও সমস্যা হওয়ার আগে স্ট্রিংগুলি ডিবি বা কোনও বাদামের মধ্যে রাখার আগে সংকোচন করা)। আপনি নিজেকে আরও কাজ দিচ্ছেন।


2

বড় স্ট্রিং বা বাইনারি ডেটা সংরক্ষণে কোনও সমস্যা নেই। আমি একাধিক টেরাবাইট বাইনারি ডেটা সহ একটি ডাটাবেস নিয়ে কাজ করেছি এবং খুব ভালভাবে (পোস্টগ্রিস) কাজ করেছি এবং একমাত্র খারাপ জিনিসটি ছিল ব্যাকআপের সময়।

বড় প্রশ্নটি: "আপনার এই পাঠ্যে ধ্রুব অনুসন্ধানগুলি করা দরকার?"

আপনি যদি পাঠ্যের স্ট্রিংগুলি অনুসন্ধান করতে যাচ্ছেন তবে আপনি একটি সূচক সমাধানে ভাবতে পারেন:

  • ডাটাবেসে পোস্ট থ্রেসের পুরো পাঠ্যের মতো কিছু থেইকু বিক্রেতার উপর নির্ভর করে: http://www.postgresql.org/docs/9.4/static/textsearch.html
  • অ্যাপ্লিকেশন সাইডে লুসিন (জাভা) এর মতো অনেকগুলি ভাল বিকল্প রয়েছে: http://lucene.apache.org/core/
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.