আমি সম্প্রতি এসকিউএলাইট বনাম মাইএসকিউএল সম্পর্কে এই প্রশ্নটি পড়েছি এবং উত্তরটি উল্লেখ করেছে যে এসকিউএলাইট ভাল স্কেল করে না এবং সরকারী ওয়েবসাইটের সাজানোর বিষয়টি এটির নিশ্চিত করে ।
এসকিউএলাইট কতটা স্কেলেবল এবং এর উচ্চতম সীমাগুলি কী?
আমি সম্প্রতি এসকিউএলাইট বনাম মাইএসকিউএল সম্পর্কে এই প্রশ্নটি পড়েছি এবং উত্তরটি উল্লেখ করেছে যে এসকিউএলাইট ভাল স্কেল করে না এবং সরকারী ওয়েবসাইটের সাজানোর বিষয়টি এটির নিশ্চিত করে ।
এসকিউএলাইট কতটা স্কেলেবল এবং এর উচ্চতম সীমাগুলি কী?
উত্তর:
গতকাল আমি একটি ছোট সাইট প্রকাশ করেছি *আপনার প্রতিনিধি ট্র্যাক করতে যা সমস্ত দর্শনার্থীর জন্য একটি ভাগ করা এসকিউএলাইট ডাটাবেস ব্যবহার করে। দুর্ভাগ্যক্রমে, এমনকি এটি আমার হোস্টের উপর পরিমিত পরিমিত চাপ দিয়েও এটি বেশ ধীরে ধীরে চলছিল। এর কারণ এটি যে কোনও সময় পৃষ্ঠাটি দেখার সময় পুরো ডাটাবেসটি লক হয়ে যায় কারণ এতে আপডেট / সন্নিবেশ রয়েছে। আমি শীঘ্রই মাইএসকিউএল স্যুইচ করেছি এবং এটি পরীক্ষা করার জন্য আমার খুব বেশি সময় নেই, এটি এসকিউএলাইটের চেয়ে অনেক বেশি স্কেলযোগ্য বলে মনে হয়। আমি কেবল স্লো পৃষ্ঠার শেল থেকে কোয়েরিগুলি চালানোর চেষ্টা করার সময় ধীর পৃষ্ঠার লোডগুলি এবং মাঝে মাঝে একটি ডেটাবেস লক ত্রুটি পেয়েছিলাম remember এটি বলেছিল, আমি এসকিউএলাইট থেকে অন্য একটি সাইট চালাচ্ছি। পার্থক্যটি হ'ল সাইটটি স্থিতিশীল (অর্থাত্ আমি কেবলমাত্র একমাত্র ডাটাবেস পরিবর্তন করতে পারি) এবং সুতরাং এটি সমবর্তী পাঠগুলির জন্য ঠিক কাজ করে। গল্পের নৈতিক:
সম্পাদনা : আমি ঠিক বুঝতে পেরেছি যে আমি এসকিউএলাইটের সাথে ন্যায্য হতে পারি না - যখন আমি কোনও ওয়েব পৃষ্ঠা থেকে এটি পরিবেশন করছিলাম তখন এসকিউএল ডাটাবেসে কোনও কলামকে আমি সূচী করিনি। আমি যে আস্তে আস্তে আছি তা আংশিকভাবে এর ফলে ঘটেছে। যাইহোক, ডাটাবেস-লকিংয়ের পর্যবেক্ষণ দাঁড়ায় - আপনার যদি বিশেষভাবে প্রচুর আপডেট থাকে তবে এসকিউএলাইটের কার্যকারিতা মাইএসকিউএল বা পোস্টগ্রিসের সাথে মেলে না।
অন্য সম্পাদনা: যেহেতু আমি প্রায় 3 মাস আগে এটি পোস্ট করেছি আমি এসকিউএলাইটের স্কেলিবিলিটিটি ঘনিষ্ঠভাবে পরীক্ষা করার সুযোগ পেয়েছি এবং কয়েকটি কৌশল দ্বারা এটি বেশ পরিমাপযোগ্য হতে পারে। আমি আমার প্রথম সম্পাদনায় যেমন উল্লেখ করেছি, ডাটাবেস সূচীগুলি নাটকীয়ভাবে ক্যোয়ারির সময়কে হ্রাস করে, তবে এটি এসকিউএলাইটের তুলনায় ডাটাবেসগুলি সম্পর্কে সাধারণ পর্যবেক্ষণের চেয়ে বেশি। তবে এসকিউএলাইট দ্রুততর করতে আপনি আরও একটি কৌশল ব্যবহার করতে পারেন: লেনদেন । যখনই আপনাকে একাধিক ডাটাবেস লিখতে হবে, সেগুলি একটি লেনদেনের মধ্যে রাখুন। ফাইলটিতে (এবং লকিং) পরিবর্তে প্রতিবারই যখন কোনও রাইটিং কোয়েরি জারি করা হয় তখন লেনদেনটি শেষ হয়ে গেলে কেবল লেখটিই ঘটবে।
আমি প্রথম অনুচ্ছেদে প্রকাশিত যে সাইটটির কথা আমি উল্লেখ করেছি সেগুলি এসকিউএলাইটে ফিরে গেছে এবং কয়েকটি জায়গায় আমার কোডটি টিউন করার পরে এটি বেশ সহজেই চলছে।
* সাইটটি আর উপলব্ধ নেই
স্ক্লাইটটি একক ব্যবহারকারীর বিবেচনায় স্কেলেযোগ্য, আমার কাছে মাল্টি-গিগাবিট ডাটাবেস রয়েছে যা খুব ভাল সম্পাদন করে এবং এতে আমার খুব বেশি সমস্যা হয়নি।
কিন্তু এটা হয় , একক ব্যবহারকারী এখনও এটা কি স্কেলিং ধরনের আপনার সম্পর্কে কথা বলছি উপর নির্ভর করে।
মন্তব্যের জবাবে ড। মনে রাখবেন যে মাল্টি-ইউজার পরিবেশে স্ক্লাইট ডাটাবেস ব্যবহার করা বাধা দেয় এমন কিছুই নেই, তবে প্রতিটি লেনদেন (কার্যত, প্রতিটি এসকিউএল বিবৃতি যা ডাটাবেসকে সংশোধন করে) ফাইলটিতে একটি লক নেয় যা অন্য ব্যবহারকারীদের ডাটাবেসে অ্যাক্সেস করা থেকে বিরত রাখে সব ।
সুতরাং আপনার যদি ডাটাবেসে প্রচুর পরিবর্তন সাধিত হয় তবে আপনি অবশ্যই স্কেলিংয়ের সমস্যাগুলি খুব দ্রুত হিট করতে চলেছেন। অন্যদিকে, লেখার অ্যাক্সেসের তুলনায় আপনার কাছে প্রচুর পড়ার অ্যাক্সেস রয়েছে, এটি এত খারাপ নাও হতে পারে।
কিন্তু SQLite অবশ্যই হবে ফাংশন একটি মাল্টি-ইউজার পরিবেশে, কিন্তু এটা করা হবে না সঞ্চালন ভাল।
এসকিউএলাইট sqlite.org ওয়েবসাইট এবং অন্যান্য যেগুলিতে প্রচুর ট্র্যাফিক রয়েছে ড্রাইভ করে। তারা পরামর্শ দেয় যে আপনার যদি প্রতিদিন 100k এর চেয়ে কম হিট থাকে তবে এসকিউএলাইটের কাজ ঠিক করা উচিত। এবং এটি "রাইটহেহেড লগিং" বৈশিষ্ট্য সরবরাহ করার আগে এটি লেখা হয়েছিল।
আপনি যদি এসকিউএলাইটের সাহায্যে জিনিসগুলি দ্রুত করতে চান তবে নিম্নলিখিতগুলি করুন:
আপনি ইউটিউবে আমার ভিডিওটি একবার "লিখিত-সামনের লগিংয়ের সাথে এসকিউএল পারফরম্যান্স উন্নত করুন " নামক এক নজরে দেখতে চাইতে পারেন যা রাইট- ফরোয়ার্ড লগিং কীভাবে ব্যবহার করতে হয় তা দেখায় এবং লেখকদের জন্য 5x গতির উন্নতি দেখায়।
স্ক্লাইট হ'ল একটি ডেস্কটপ বা প্রক্রিয়াধীন ডাটাবেস। এসকিউএল সার্ভার, মাইএসকিউএল, ওরাকল এবং তাদের ভাইয়েরা সার্ভার ।
ডেস্কটপ ডেটাবেসগুলি তাদের স্বভাব অনুসারে কোনও অ্যাপ্লিকেশনের জন্য ভাল পছন্দ নয় যা ডেটা স্টোরের একযোগে লেখার অ্যাক্সেস সমর্থন করে। এটি কখনও তৈরি বেশিরভাগ ওয়েব সাইটগুলিতে অন্তর্ভুক্ত। এমনকি যদি আপনাকে কোনও কিছুর জন্যও লগ ইন করতে হয়, আপনার সম্ভবত ডিবিতে লেখার অ্যাক্সেসের প্রয়োজন।
আপনি কি এই এসকিউএলাইট ডক্সটি পড়েন - http://www.sqlite.org/whentouse.html ?
এসকিউএলাইট সাধারণত নিম্ন থেকে মাঝারি ট্র্যাফিক ওয়েবসাইটগুলির জন্য ডেটাবেস ইঞ্জিন হিসাবে দুর্দান্ত কাজ করবে (যা বলা হয়, সমস্ত ওয়েবসাইটের 99.9%)। এসকিউএলাইট যে পরিমাণ ওয়েব ট্র্যাফিক পরিচালনা করতে পারে তা ওয়েবসাইট তার ডেটাবেসটিকে কতটা ভারী ব্যবহার করে তার উপর নির্ভর করে। সাধারণভাবে বলতে গেলে যে কোনও সাইটের 100K হিট / দিনের চেয়ে কম পরিমাণ আসে সেগুলি এসকিউএলাইটের সাথে দুর্দান্ত কাজ করা উচিত। 100 কে হিট / দিনের চিত্রটি রক্ষণশীল অনুমান, কোনও হার্ড আপার বাউন্ড নয়। এসকিউএলাইট ট্র্যাফিকের পরিমাণের 10 গুণ দিয়ে কাজ করার জন্য প্রদর্শিত হয়েছে।
এসকিউএলাইট স্কেলাবিলিটিটি ব্যবহৃত ডেটা এবং তাদের ফর্ম্যাটের উপর নির্ভর করবে। অতিরিক্ত লম্বা টেবিল (জিপিএস রেকর্ড, প্রতি সেকেন্ডে একটি রেকর্ড) নিয়ে আমার কিছু শক্ত অভিজ্ঞতা হয়েছে। অভিজ্ঞতা দেখিয়েছিল যে এসকিউএলাইট ধাপে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে বেড়ে উঠবে বর্ধমান বাইনারি গাছগুলির সূচকগুলি ধরে রাখার কারণে (এবং সময়-স্ট্যাম্পড সূচী সহ, আপনি কেবল জানেন যে গাছটি অনেকটা ভারসাম্য বয়ে আনতে চলেছে, তবুও এটি আপনার পক্ষে অত্যাবশ্যক অনুসন্ধান)। সুতরাং প্রায় 1 জিবি শেষে (খুব বলপার্ক, আমি জানি), প্রশ্নগুলি আমার ক্ষেত্রে স্লো হয়ে যায়। আপনার মাইলেজ পৃথক হবে।
একটি জিনিস মনে রাখবেন, সমস্ত বর্বরতা সত্ত্বেও, এসকিউএলাইট ডেটা গুদামজাত করার জন্য তৈরি করা হয় না। এসকিউএলাইটের জন্য প্রস্তাবিত বিভিন্ন ব্যবহার রয়েছে । এসকিউএলাইটের পিছনে সূক্ষ্ম লোকেরা এগুলি নিজেরাই বলে:
এসকিউএলাইটের দিকে নজর দেওয়ার আরেকটি উপায় হ'ল এসকিউএলাইট ওরাকল প্রতিস্থাপনের জন্য ডিজাইন করা হয়নি। এটি ফপেন () প্রতিস্থাপনের জন্য ডিজাইন করা হয়েছে।
এবং এটি মূল তর্ককে বাড়ে (পরিমাণগত নয়, দুঃখিত, তবে গুণগত নয়), এসকিউএলাইট সমস্ত ব্যবহারের জন্য নয়, অন্যদিকে মাইএসকিউএল অনেকগুলি বিভিন্ন ব্যবহারকে কভার করতে পারে, এমনকি আদর্শ না হলেও। উদাহরণস্বরূপ, আপনার মাইএসকিউএল স্টোর ফায়ারফক্স কুকিজ থাকতে পারে (এসকিউলাইটের পরিবর্তে), তবে আপনার সার্বক্ষণিক সেই পরিষেবাটি দরকার। অন্যদিকে, আপনি মাইএসকিউএল এর পরিবর্তে এসকিউএলাইটে (যেমন অনেকেই করেন) একটি লেনদেনের ওয়েবসাইট চালু থাকতে পারে তবে অনেক ডাউনটাইম আশা করে।
ATTACH DATABASE
সমস্ত টেবিলের সাথে ভার্চুয়াল ডাটাবেস সংযোগ তৈরি করতে ব্যবহার করে (তবে হার্ডডেমি 62২ ডাটাবেস সীমাবদ্ধ)।
আমি মনে করি যে একটি (সংখ্যায় 1) ক্লায়েন্টদের হেন্ডার্ট পরিবেশনকারী ওয়েবসভারটি ব্যাকএন্ডে ডাটাবেসের সাথে একক সংযোগ সহ উপস্থিত হয়, তাই না?
সুতরাং ডাটাবেসে কোনও একযোগে অ্যাক্সেস নেই তাই আমরা বলতে পারি যে ডাটাবেসটি 'একক ব্যবহারকারী মোডে' কাজ করছে। এ জাতীয় পরিস্থিতিতে বহু-ব্যবহারকারীর অ্যাক্সেসকে ডিসকাস করার কোনও অর্থ নেই এবং তাই এসকিউএলাইট পাশাপাশি অন্য কোনও সার্ভার ভিত্তিক ডাটাবেস হিসাবে কাজ করে।
এই ভাবে চিন্তা করুন। এসকিউএল লাইট যখনই এটি ব্যবহার করবে ততবার লক হয়ে যাবে (এসকিউএলাইট পড়ার সময় লক করে না)। সুতরাং যদি আপনি কোনও ওয়েব পৃষ্ঠা বা একাধিক সমবর্তী ব্যবহারকারীদের এমন একটি অ্যাপ্লিকেশন পরিবেশন করে থাকেন তবে এসকিউএললাইটের সাথে একসাথে আপনার অ্যাপ্লিকেশনটি ব্যবহার করতে পারে। সুতরাং ঠিক এখানে একটি স্কেলিং সমস্যা আছে। যদি এটির কোনও এক ব্যক্তির অ্যাপ্লিকেশন যদি এমন একটি মিউজিক লাইব্রেরি বলে যেখানে আপনি শত শত শিরোনাম, রেটিং, তথ্য, ব্যবহার, প্লে, খেলার সময় রাখেন তবে এসকিউএল লাইট হাজার হাজার রেকর্ড না থাকলে হাজার হাজার ধরে সুন্দরভাবে স্কেল করবে (হার্ড ড্রাইভ ইচ্ছুক)
অন্যদিকে মাইএসকিউএল সার্ভার অ্যাপ্লিকেশনগুলির জন্য ভাল কাজ করে যেখানে সমস্ত মানুষ একই সাথে এটি ব্যবহার করবে। এটি লক করে না এবং এটি আকারে বেশ বড়। সুতরাং আপনার সংগীত পাঠাগারটির জন্য মাই এসকিএল হ'ল হত্যার ঘটনাটি কেবলমাত্র একজন ব্যক্তি দেখতে পাবে, নিঃসন্দেহে এটি একটি ভাগ করা সংগীত লাইব্রেরি যেখানে হাজার হাজার মানুষ এটি যুক্ত করে বা আপডেট করে। তারপরে MYSQL ব্যবহার করা হবে।
সুতরাং তত্ত্বের ক্ষেত্রে মাইএসকিউএল আরও ভাল স্কেল করে স্কেলাইট কারণ এটি একাধিক ব্যবহারকারীকে পরিচালনা করতে পারে তবে এটি একটি একক ব্যবহারকারীর অ্যাপ্লিকেশনটির জন্য ওভারকিল।
এসকিউএলাইটের ওয়েবসাইট (যে অংশটি আপনি রেফারেন্স করেছেন) নির্দেশ করে যে এটি বিভিন্ন মাল্টি-ব্যবহারকারীর পরিস্থিতিতে ব্যবহার করা যেতে পারে।
আমি বলব যে এটি বেশ খানিকটা পরিচালনা করতে পারে। আমার অভিজ্ঞতায় এটি সবসময় খুব দ্রুত ছিল। অবশ্যই, আপনাকে আপনার টেবিলগুলি সূচীকরণ করতে হবে এবং এর বিরুদ্ধে কোডিং করার সময় আপনাকে নিশ্চিত করতে হবে যে আপনি প্যারামিটাইজড ক্যোয়ারী এবং এর মতো ব্যবহার করছেন। কার্য সম্পাদন উন্নত করতে আপনি যে কোনও ডাটাবেসের সাথে মূলত একই জিনিসটি করবেন।
এটি রিয়েল এসকিউএল সার্ভার যাচাই করা মূল্যবান হতে পারে যা এসকিউএলাইটে নির্মিত একটি ডাটাবেস সার্ভার।