ExpressAdvanced
Express Performance Optimization
gzip, caching, N+1 query fix, clustering, monitoring — Express-এ performance বাংলায়।
16টি অংশবাংলা ভাষায়
API slow হলে user experience খারাপ হয়। নিচের টেকনিক দিয়ে Express app দ্রুত করা যায়।
1. Compression
npm install compressionconst compression = require("compression");
app.use(compression()); // gzip — response size কমানো2. Response Caching
// static caching headers
app.use(
express.static("public", {
maxAge: "1d",
immutable: true, // content changes না
})
);
// API caching (private) — client-side redirect
app.get("/api/me", (req, res) => {
res.set("Cache-Control", "private, max-age=60");
res.json({ user: req.user });
});3. N+1 Query Problem
// ❌ N+1 — প্রতিটি post প্রতিটি author query (slow)
const posts = await Post.find();
for (const post of posts) {
post.author = await User.findById(post.authorId); // N queries
}
// ✅ populate/join — এক query-তেই
const posts = await Post.find().populate("author", "name email");4. Database Indexing
User Modeljavascript
javascript
const userSchema = new mongoose.Schema({
email: { type: String, unique: true }, // auto index
name: String,
postsCount: { type: Number, default: 0 },
});
// custom index
userSchema.index({ name: "text" }); // text search
userSchema.index({ createdAt: -1 }); // sort dependent5. Cluster Mode
# PM2 দিয়ে cluster — সব CPU core ব্যবহার
pm2 start index.js -i max
pm2 statusPerformance Tests
npm install autocannon# test 20s, 100 concurrent
npx autocannon -c 100 -d 20 http://localhost:5000/api/users
# Output দেখায়: requests/sec, latency, errorsবড় step-by-step
প্রথমে test করুন (baseline), তারপর optimize (compression → cache → query fix), আবার test — সম্বেখ সেরা ফলাফল দেখুন।
শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।