SQL বনাম NoSQL: কোন database বাছবেন

SQL আর NoSQL আলাদা কাজের যন্ত্র। প্রতিটি কীসে ভালো, NoSQL-এর চার পরিবার, আর কেন PostgreSQL শক্ত ডিফল্ট, জানুন।

টেবিলের পাশে কয়েকটি ডকুমেন্ট কার্ড

SQL (relational) database data রাখে নির্দিষ্ট schema-র table-এ এবং join ব্যবহার করে। NoSQL হলো সেই মডেল না মানা database-দের ঢিলেঢালা নাম: এরা document, key-value, wide column বা graph রাখতে পারে।

SQL যা দেয়

  • ACID transaction: ট্রান্সফার হয় পুরোপুরি, নয়তো একদমই হয় না।
  • সম্পর্কিত data জুড়ে join ও নমনীয় query।
  • কড়া schema, যা data-র মান রক্ষা করে।
  • পরিপক্ক টুল: PostgreSQL, MySQL, SQLite।

NoSQL যা দেয়

  • নমনীয় schema: আলাদা আকারের record রাখা যায়।
  • বিশাল volume-এ সহজ horizontal scaling, প্রায়ই ডিজাইনেই।
  • নির্দিষ্ট access pattern-এর সাথে মানানো মডেল।

চার ধরনের NoSQL

ধরন কীসে ভালো উদাহরণ
Key-value cache, session, counter Redis, DynamoDB
Document কনটেন্ট, ক্যাটালগ, profile MongoDB, Firestore
Wide-column বিশাল write-heavy data, time series Cassandra, HBase
Graph সম্পর্ক, recommendation Neo4j

কীভাবে বাছবেন

তিনটি প্রশ্ন করুন:

  1. Data কি খুব সম্পর্কিত এবং transaction দরকার? SQL নিন।
  2. Access pattern জানা, আর বিশাল scale বা খুব কম latency লাগবে? NoSQL ভাবুন।
  3. Schema কি ক্রমাগত বদলায়? Document store মানাতে পারে, তবে PostgreSQL-এর JSON column দিয়েও প্রায়ই চলে।

সাধারণ ভুল

Traffic আসার আগেই "scale করে" বলে NoSQL নেওয়া। বেশিরভাগ প্রোডাক্ট ভালোভাবে tune করা একটি PostgreSQL server ও replica-কে ছাড়িয়ে যায় না। অনেক আসল সিস্টেম দুটোই ব্যবহার করে: মূল data SQL-এ, আর caching-এ Redis।

মূল কথা: ডিফল্ট হিসেবে relational নিন, আর নাম বলতে পারেন এমন নির্দিষ্ট কাজের জন্য NoSQL যোগ করুন।


System Design সিরিজের 7 নম্বর পর্ব (মোট ১৫)। আগের পর্ব: CDN কী এবং কীভাবে সাইট দ্রুত করে.

আরও পড়ুন

Recursion ও backtracking সহজ উদাহরণে

Recursion সমস্যার ছোট কপি সমাধান করে সমাধান করে। অনেক interview সমস্যায় ব্যবহৃত চিন্তার ধাপ ও backtracking টেমপ্লেট শিখুন।

Interview ও DSA•৩ মিনিটে পড়া