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