একটি এসকিউএল ডাটাবেসের জন্য বাস্তব, বাস্তব-বিশ্ব, সর্বোচ্চ আকার কী?


33

এসকিউএলাইটের উপযুক্ত ব্যবহারের উপর এই নিবন্ধ অনুসারে এটি বলেছে যে এসকিউএলাইট 140 টেরাবাইটের মধ্যে সীমাবদ্ধ থাকলেও ক্লায়েন্ট / সার্ভার আরডিবিএমএস আরও ভাল কাজ করতে পারে:

একটি এসকিউএল ডাটাবেস আকারে সীমাবদ্ধ 140 টেরাবাইট (2 47 বাইট, 128 টিবিবাইট)। এমনকি যদি এটি বৃহত্তর ডাটাবেসগুলি পরিচালনা করতে পারে তবে এসকিউএলাইট পুরো ডাটাবেসটিকে একটি একক ডিস্ক ফাইলে সংরক্ষণ করে এবং অনেকগুলি ফাইল সিস্টেমগুলি ফাইলের সর্বাধিক আকারকে এর চেয়ে কম কিছুতে সীমাবদ্ধ করে। সুতরাং আপনি যদি এই মাত্রার ডাটাবেসগুলি বিবেচনা করছেন, আপনি ক্লায়েন্ট / সার্ভার ডাটাবেস ইঞ্জিন ব্যবহার করে বিবেচনা করা ভাল যা এটির সামগ্রীটি একাধিক ডিস্ক ফাইলগুলিতে ছড়িয়ে দেয় এবং সম্ভবত একাধিক ভলিউম জুড়ে।

সাধারণভাবে, আমি এটির সাথে একমত, তবে এসকিউএলাইটের সর্বাধিক সীমাটি এত বেশি ছিল তা জানতে পেরে আমি অবাক হয়ে গেলাম! আমার অভিজ্ঞতায় আমি S 30-100 জিবি আকারে বেশ কয়েকটি এসকিউএল সার্ভার ডাটাবেস ব্যবহার করেছি। আমি ওরাকল, পোস্টগ্র্রেস বা ক্যাসান্দ্রা ব্যবহার করে আরও বড় ডেটাবেসগুলির সাথে অপ্রত্যক্ষভাবে কাজ করেছি। এর মধ্যে কমপক্ষে আমার জানা মতে, কেউই 140 টিবি-র কাছে আসেনি। আমি ডিবিএ নই, সুতরাং এটিই আমার প্রত্যক্ষ অভিজ্ঞতা থেকে আমি "বৃহত্তর" বিবেচনা করব।

আমি কেবল এসকিউএলাইটকে এমন পরিস্থিতিতে বিবেচনা করেছি যেখানে ডাটাবেস ক্ষুদ্রতর হবে; সর্বাধিক কয়েক ডজন মেগাবাইট।

এই নিবন্ধটি পড়ার পরেও আমি এখনও কখনও এসকিউএলাইটকে এমন কোনও কিছুর জন্য বিবেচনা করতে নিশ্চিত হইনি যার জন্য শত শত গিগাবাইট প্রয়োজন হতে পারে। তবে আমি ভাবছি যে আমি যদি এর ক্ষমতাগুলি কম করে দেখছি। রিয়েল-ওয়ার্ল্ড ব্যবহারে একটি এসকিউএল ডাটাবেসের জন্য বাস্তবসম্মত সর্বোচ্চ আকারের সীমাটি কী?


3
আমি কেবলমাত্র মনে করি আমাদের সাধারণত সমবর্তী সংযোগগুলির সংখ্যাটি বিবেচনা করতে হবে যেহেতু বড় ডেটাসেটগুলি প্রায়শই একাধিক ব্যবহারকারীর দ্বারা গ্রাস করা হয়। আপনার নিজের সিস্টেমে এটি পরীক্ষা করার জন্য একটি উপায় আছে কি?
জেফো

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


2
@ পেসারিয়র - হ্যাঁ, সফ্টওয়্যারটি ইনস্টল করতে। তারপরে আপনাকে ডিবি রোলগুলি অর্পণ করতে হবে, আপনার ব্যাকআপ সিস্টেমে কীভাবে সংহত করতে হবে তা নির্ধারণ করতে হবে, ব্যাকআপ সিস্টেম ইত্যাদির শুরু এবং শেষের দিকে ব্যাকআপ সিস্টেমটি ডিবি সার্ভারকে যথাযথ অবস্থায় রাখবে তা নিশ্চিত করুন There কেবলমাত্র সফ্টওয়্যার ইনস্টল করার চেয়ে ডিবি সার্ভার স্থাপন করা। আরও, এটি একটি আরও পরিষেবা যা আপনাকে নেটওয়ার্ক সুরক্ষা দৃষ্টিকোণ থেকে, এবং আপনাকে আরও একটি জিনিস যা প্যাচিংয়ের সাথে চালিয়ে যেতে হবে তা নিয়ে উদ্বিগ্ন হতে হবে। আপনি যদি কোনও ডিবি পরিষেবা প্রয়োজন হয় তবে সর্বদা এটির জন্য যান, তবে এটির আপনার প্রয়োজন হয় না, এসকিউএলাইটের অনেক কম ওভারহেডের হ্যাক রয়েছে।
মাইকেল কোহনে 30'17

1
@ লীয়ানডে - অথবা আপনি এক মাসের জন্য জায়গা ভাড়া দিতে পারেন।
জেফো

উত্তর:


26

বাস্তব সীমাবদ্ধতা (কিছু স্ক্লাইট ডাটাবেসের আকারের) কোনও ডেটা ফাইলের বাস্তববাদী সীমা হিসাবে সমান। এবং এই সীমাটি আপনার কম্পিউটার এবং সিস্টেমের অনেকগুলি নির্ভর করে। আমার বর্তমান লিনাক্স ডেস্কটপে আমি 350Gbyte ফাইলের চেয়ে বেশি বড় সামর্থ্য রাখতে পারি না (কারণ থাম্বের নিয়ম হিসাবে আমি একটি একক ফাইলকে অর্ধেক ডিস্ক বিভাজন বেশি খাওয়া এড়াতে পারি না)। বিটিডাব্লু, সেই ব্যবহারিক সীমাটি পোস্ট এসগ্রিজকিউএল বা মারিয়াডিবি-র মতো অন্যান্য এসকিউএল আরডিবিএমএসকেও প্রভাবিত করে (তবে এগুলির বেশিরভাগই বিভিন্ন ফাইলগুলিতে ডেটা রাখে , যা আপনি হয়ত বিভিন্ন ফাইল সিস্টেমে রাখতে পারেন এবং তাদের মধ্যে কিছু রিমোট মেশিনে বিতরণ করা ডেটা পরিচালনা করতে সক্ষম হন ..) ।)

এই নিবন্ধটি পড়ার পরেও আমি এখনও কখনও এসকিউএলাইটকে এমন কোনও কিছুর জন্য বিবেচনা করতে নিশ্চিত হইনি যার জন্য শত শত গিগাবাইট প্রয়োজন হতে পারে

আপনি সঠিক এবং ভুল।

আপনি ঠিকই বলেছেন, কারণ আজকের কম্পিউটারে (ল্যাপটপস এবং ডেস্কটপগুলি, সুপার কম্পিউটার বা ডেটাসেন্টার সার্ভার নয়), একশ গিগাবাইট এখনও বেশ বড় ডিস্কের স্থান। সুতরাং বাস্তবে, আপনি যদি এত বড় ডেটাবেসটির কথা ভাবেন, তবে আপনি বিশেষত একটি সত্যিকারের এসকিউএল সার্ভার (Post la PostGreSQL) কল্পনা করতে পারেন কারণ আপনি সম্ভবত খুব সম্ভবত দূরবর্তী অ্যাক্সেস, কার্যকরভাবে একযোগে অ্যাক্সেস এবং সম্ভবত বিতরণ করা ডেটা এবং টেবিলগুলি চাইবেন।

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

আমি অবশ্যই (মাঝে মাঝে) কয়েক ডজন গিগাবাইটের ডাটাবেসের .sqliteজন্য এসকিউএলাইট বিবেচনা করব (এবং আমি 40Gbytes এর আইআরসি এত বড় ফাইল একবার চেষ্টা করেছিলাম)। বর্তমানের (অ-সুপার কম্পিউটার) মেশিনে, আমি এসকিউএলাইট ডাটাবেসের অনেকগুলি গিগা বাইট থাকা সংকোচ করব, কেবল কারণ এই জাতীয় ফাইলটি আজকের অনুশীলনের দ্বারা যথেষ্ট বড়।

আইআইআরসি কিছু হার্ডওয়্যার বিক্রেতা বিশেষায়িত ফাইল সিস্টেম মেশিন বিক্রয় করে আমার কাছে একবার টেরাবাইট স্ক্লাইট অ্যাপ্লিকেশনটি সম্পর্কে কথা বলেছিল (তবে আমি ভুল হতে পারি)।

অবশ্যই এসকিউএল কর্মক্ষমতা নির্ভর করে (সমস্ত এসকিউএল ডাটাবেসের মতো) অনেকগুলি টেবিলের সংখ্যা এবং প্রস্থ, তাদের সূচীগুলি, এসকিউএল কোয়েরিগুলির সাথে জড়িত। এবং আপনি একযোগে অ্যাক্সেস (অনেকগুলি বিভিন্ন প্রক্রিয়া দ্বারা) রাখতে চান না এবং আপনার লেনদেনটি ব্যবহার করা উচিত (এমনকি অভিজ্ঞতার দ্বারা, কয়েক মেগাবাইটের একটি ক্ষুদ্র এসকিউএলইটি ডাটাবেসেও, আপনি সত্যই আপনার সহ হাজার হাজার সন্নিবেশের অনুরোধগুলি BEGIN TRANSACTION& END TRANSACTION, এটি না করা স্ক্লাইটটিকে 10x- এর চেয়েও বেশি বড় ফ্যাক্টর দ্বারা কমিয়ে দিচ্ছে)।

এবং ব্যক্তিগত অভিজ্ঞতা অনুসারে উপযুক্ত কনফিগারেশন এবং সংস্থার সাথে এসকিউএলাইট উপলব্ধ র‌্যামের চেয়ে বড় একটি ডাটাবেস পরিচালনা করতে সক্ষম (তাই 30 জিবিটস কোনও সমস্যা নয়) - তবে আপনি সম্ভবত সূচিগুলি র‌্যামের সাথে ফিট করতে চান!

আপনি যদি কোনও "সুপার কম্পিউটার" বা ব্যয়বহুল ওয়ার্কস্টেশনের জন্য কোডের কিছু ঘটেন (যেমন 512 গিগাবাইট র‌্যাম এবং 8 টাইবিট ডিস্ক এবং এসএসডি এর 512 জিবিট) আপনার অবশ্যই একটি টেরাবাইট স্ক্লাইট ডাটাবেস থাকতে পারে। তবে আপনি এটি করতে চাইবেন কেবলমাত্র যদি একটি (বা খুব কম) প্রক্রিয়া (এস) সেই ডাটাবেসটি অ্যাক্সেস করে। আপনার যদি একই সাথে একই ডাটাবেসটিতে একাধিক প্রক্রিয়া অ্যাক্সেস থাকে তবে আরও ভাল একটি আসল এসকিউএল আরডিবিএমএস ইনস্টল করুন (Mar লা মারিয়াডিবি বা পোস্টগ্রিসকিউএল)

এছাড়াও নোট করুন যে .sqliteডাটাবেস ফাইলগুলির (বাইনারি) ফর্ম্যাটটি "পোর্টেবল" হিসাবে নথিভুক্ত করা হয়েছে, আমি এসকিউএল পাঠ্য বিন্যাসে (ব্যবহার করে sqlite3 mydb.sqlite .dump > mydb.sql) ডাটাবেসগুলি ব্যাকআপ করতে পছন্দ করি । তারপরে, সেই পাঠ্য ডাম্পের জন্য আমার আরও কিছু অতিরিক্ত ডিস্ক স্পেসও প্রয়োজন (এবং এটি বাস্তবসম্মত সীমাটি হ্রাস করে)।

সাধারণত স্ক্লাইট কোনও বাধা নয়। তবে ডিস্কটি হতে পারে।

গীত। জিডিবিএম ব্যবহার করে বৃহত সূচকযুক্ত ফাইলগুলিতে একই যুক্তি প্রয়োগ করা যেতে পারে ।

PPS। আমার সালে expjs শাখা আমার গলে মনিটরের (sept.2016) (GPLv3 মুক্ত সফটওয়্যার, GitHub দিকে) আমি persisting একটি তাজা SQLite ডাটাবেস ভিতরে তাদেরকে JSON সমগ্র আবেদন গাদা। আমি খারাপ লক্ষ ছাড়াই কয়েক মিলিয়ন অবজেক্টের (বেশ "বড়") নিয়ে ছোট ছোট পরীক্ষা চালিয়েছি। YMMV।


7
আপনি চতুর্থ অনুচ্ছেদের পরে লেখা বন্ধ করতে পারে। তবে যাইহোক +1 করুন।
রবার্ট হার্ভে

3
হতে পারে, তবে আমি অবাক হয়ে খুব অবাক হয়ে লক্ষ্য করেছিলাম যে এমনকি মাত্র কয়েকটি মেগাবাইটের একটি সতেজ স্ক্লাইট ডাটাবেসেও লেনদেন অনুশীলনে এত গুরুত্বপূর্ণ (কেবলমাত্র একটি একক প্রক্রিয়া অ্যাক্সেস সহ, প্রকৃতপক্ষে সেই নতুন ফাইলটি লেখা)।
বেসাইল স্টারিনকিভিচ

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

5
প্রচুর বৈধ পরিস্থিতি রয়েছে যেখানে আপনার বিশাল ফাইল আকারের এসকিউএল ডাটাবেস থাকতে পারে। এসকিউএলাইট বিকাশকারীরা তাদের কাছ থেকে: মাইএসকিএল এর প্রতিস্থাপন হিসাবে কম, এবং ফপেনের প্রতিস্থাপন হিসাবে আরও ভাবেন। কিছু থ্রিডি ক্যাড সফ্টওয়্যার লিখতে এবং এসকিউএলাইট ডাটাবেসগুলি অবজেক্ট সম্পর্কে ডেটা সঞ্চয় করতে ব্যবহার করা পুরোপুরি যুক্তিযুক্ত হতে পারে।
কিসনেস

2
@ পেসারিয়র: মুভি ফাইল এবং অনুরূপ বাইনারি ব্লবগুলি সাধারণত ডেটাবেজে সংরক্ষণ করা হয় না। এগুলি ফাইল সিস্টেমে সংরক্ষিত থাকে এবং সেগুলির লিঙ্কগুলি ডাটাবেসে সংরক্ষণ করা হয়।
রবার্ট হার্ভে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.