Ariful Haque Sajib

Ariful Haque Sajib Contact information, map and directions, contact form, opening hours, services, ratings, photos, videos and announcements from Ariful Haque Sajib, Science, Technology & Engineering, Dhanmondi 27, Dhaka.

Hi, I’m Ariful Haque Sajib, a Software Engineer shaping ideas into code — Known online as GitHub| LinkedIn | Medium | dev.to | Pinterest | Instagram

৩টা প্রশ্নের উত্তর জানলে Database confusion চিরতরে শেষ! 🗄️যখন প্রজেক্ট শুরু হয়, তখন যে প্রশ্নটা মাথায় আসে —"কোন Databa...
02/03/2026

৩টা প্রশ্নের উত্তর জানলে Database confusion চিরতরে শেষ! 🗄️

যখন প্রজেক্ট শুরু হয়, তখন যে প্রশ্নটা মাথায় আসে —
"কোন Database ব্যবহার করব?" 🤔
MySQL? PostgreSQL? নাকি MongoDB?
অনেকেই confuse হয়ে যান। আমিও একসময় হতাম।
কিন্তু আসলে উত্তরটা লুকিয়ে আছে তিনটা সহজ প্রশ্নে —

🔴 প্রশ্ন ১: তোমার Data কি Structured?
যদি data সুন্দরভাবে table (rows–columns) এ সাজানো যায়, relation থাকে (foreign key, join লাগে) — তাহলে Relational Database (RDBMS) ব্যবহার করো।

MySQL
→ ছোট-মাঝারি প্রজেক্ট, সহজ setup, দ্রুত শেখা যায়,
→ Web application, CMS, startup project এর জন্য ভালো,
→ High traffic-ও handle করতে পারে (proper optimization করলে)।

PostgreSQL
→ Complex query, advanced indexing, strong data integrity দরকার হলে অসাধারণ
→ Enterprise-level project ও financial system এ খুব জনপ্রিয়।
→ Strong ACID compliance ও complex transaction এ শক্তিশালী।

🟢 প্রশ্ন ২: তোমার Data কি Flexible বা Semi-Structured?
যদি প্রতিটা record এর structure আলাদা হয়, data বারবার পরিবর্তন হয় — তাহলে MongoDB
→ Real-time apps, Content Management, IoT, Social Platform — এসব জায়গায় MongoDB দারুণ কাজ করে।

🔵 প্রশ্ন ৩: Scale কতটুকু দরকার?
লক্ষ লক্ষ transaction?
→ MySQL এবং PostgreSQL — দুটোই capable (ঠিকমতো indexing ও optimization দরকার)

Horizontal scaling সহজভাবে দরকার?
→ MongoDB

Strong consistency + complex transaction দরকার?
→ PostgreSQL (বা MySQL)

Simple ও দ্রুত শুরু করতে চাও?
→ MySQL

সহজ করে বললে:
🏦 Bank / Fintech → PostgreSQL
📝 Blog / CMS → MySQL
📱 Real-time App বা Social Platform → MongoDB

কয়েক বছর আগের কথা  আমার senior আমাকে জিজ্ঞেস করলো : "তোমার API টা এত slow কেন?" 😰আমি confused! আমার code perfect, serve...
16/11/2025

কয়েক বছর আগের কথা আমার senior আমাকে জিজ্ঞেস করলো : "তোমার API টা এত slow কেন?" 😰

আমি confused! আমার code perfect, server upgraded, database এ index ও আছে। তাহলে?

উনি আমার screen এ একটা tool open করে বললো : "এই দেখো - 101টা database queries!"
আমি বললাম, "Impossible! আমি তো শুধু products list দেখাচ্ছি।" 😳
উনি হেসে বললো : "Welcome to the N+1 Problem club। 80% developers এই trap এ পড়ে।"

সেদিন যা শিখলাম, আজকে তা share করছি।

🔴 আমার code টা এমন ছিল:
products = Product.all()
for product in products:
category = Category.find(product.category_id)
print(product.name, category.name)

দেখতে normal লাগছে, আমিও তাই ভাবছিলাম। 🤔

কিন্তু reality:
1️⃣ Query 1 → সব products
2️⃣ Query 2-101 → প্রতিটা product এর category এর জন্য আলাদা query
মোট = 101টা queries! 😱

প্রতিটা query তে 50ms লাগে। তাহলে হিসাব:
101 × 50ms = 5+ seconds শুধু database calls এ!

এটাই N+1 Problem। আমি জানতামই না এই জিনিস exist করে। 🙈

💡 Senior বললো : "এক line change করো।"

আমি করলাম:
products = Product.with('category').all() # এইটুকুই!

Result:
❌ 101 queries → ✅ 1 query
❌ 8 seconds → ✅ 0.3 seconds

এত বড় problem, এত ছোট solution!

🎯 এর পর থেকে আমি যা করি:
Debugbar দিয়ে query count check করি। যদি 10+ queries দেখি, সাথে সাথে investigate করি। 🔎

🚨 কিছু signs যে আপনার API তে N+1 আছে:
→ Database calls বেশি কিন্তু code simple মনে হচ্ছে
→ Loop এর ভিতরে Model::find() বা get() দেখলেই সন্দেহ করুন
→ 10টা data load হতে 1 second, 100টা data তে 10 seconds লাগছে
→ Production এ user বলছে "page load হতে সময় লাগছে"

এক মাস পর আমাদের project এ যা হলো:
✅ API response time: 8s → 0.3s (26x improvement!)
✅ Server CPU usage: 80% → 15%
✅ Customer complaints: সপ্তাহে 50+ → প্রায় zero

সবচেয়ে মজার ব্যাপার? আমার senior বললো এই একটা fix company কে server cost save করাবে। 💰

আমি বুঝলাম - performance optimization মানে শুধু code নয়, database queries ও।

আপনার কি মনে হয় আপনার project এ N+1 problem আছে? 🤔

একটা simple test করুন: 🧪
আপনার সবচেয়ে slow API endpoint টা নিন। Query monitoring tool দিয়ে দেখুন কয়টা queries হচ্ছে। যদি 20+ হয়, 90% chance আছে N+1 আছে।

আপনিও কি এই problem এ পড়েছিলেন কখনো? কিভাবে discover করেছিলেন? 💬

Google এ "Bangladesh" লিখে search দিলে 0.5 second এ 500 million results! 😱 কিন্তু আপনার project এ 10,000 users এর মধ্যে ...
29/10/2025

Google এ "Bangladesh" লিখে search দিলে 0.5 second এ 500 million results! 😱 কিন্তু আপনার project এ 10,000 users এর মধ্যে একজনকে খুঁজতে 5 second লাগে?

আজকে শেয়ার করছি Database Indexing - যেটা আপনার database কে rocket speed দিতে পারে! 🚀

🔥 একটা real scenario:
ধরুন আপনার e-commerce site এ 1 million products আছে। একজন customer search করলো "Samsung Galaxy S24"।

❌ WITHOUT INDEX: Database টা 1st product থেকে শুরু করে একটা একটা করে সব products check করবে। Result: 8-10 seconds ⏰

✅ WITH INDEX: Database সরাসরি target product এ jump করবে। Result: 0.1 seconds ⚡

🤔 কিন্তু Index কিভাবে কাজ করে?

মনে করুন আপনার কাছে একটা বই আছে যেখানে 1000 pages এ 5000 topics আছে।

📕 Index ছাড়া: "Machine Learning" topic খুঁজতে হলে page 1 থেকে শুরু করে একটা একটা page উল্টাতে হবে। হয়তো 800 page উল্টানোর পর পাবেন!

📗 Index সহ: বইয়ের শেষে একটা index page আছে যেখানে লেখা: "Machine Learning - Page 437" সরাসরি page 437 এ গিয়ে পেয়ে গেলেন!

💡 Database Index ঠিক এভাবেই কাজ করে:
1️⃣ একটা separate structure তৈরি হয় যেখানে data এর reference থাকে
2️⃣ এই structure টা sorted এবং optimized থাকে
3️⃣ Search করার সময় পুরো table scan না করে index ব্যবহার করে
4️⃣ Milliseconds এ result পাওয়া যায়

🎯 Real Example:
-- Without Index (Slow)
SELECT * FROM users WHERE email = '[email protected]';
-- Scans all 1 million rows

-- Create Index
CREATE INDEX idx_email ON users(email);

-- With Index (Fast)
SELECT * FROM users WHERE email = '[email protected]';
-- Directly finds the row!

✅ কখন Index ব্যবহার করবেন:
1. যে column এ frequently search হয়
2. WHERE, JOIN, ORDER BY তে ব্যবহৃত columns
3. Large tables (10,000+ rows)
4. Read-heavy applications

💼 Industry তে Impact:
Facebook, Google, Amazon - সবাই heavily indexing ব্যবহার করে। Proper indexing না থাকলে এই platforms গুলো এত fast হতো না!

11/07/2025

আপনি যখন কোন একটা কিছু সিরিয়াসলি করতে চাইবেন।

ঠিক সেদিন থেকেই এমন কিছু আপনার সাথে ঘটবে, তখন আর ওই সিরিয়াসনেসটা থাকবে না 😞

Address

Dhanmondi 27
Dhaka
1209

Alerts

Be the first to know and let us send you an email when Ariful Haque Sajib posts news and promotions. Your email address will not be used for any other purpose, and you can unsubscribe at any time.

Shortcuts

Share