Vận hành PostgreSQL ổn định hơn cho ứng dụng web
Các điểm thực tế khi đưa PostgreSQL vào production: connection pooling, index, backup, migration và quan sát query chậm.

PostgreSQL rất dễ bắt đầu, nhưng để chạy ổn định trong production thì cần một vài nguyên tắc vận hành rõ ràng. Phần lớn sự cố database không đến từ tính năng phức tạp, mà từ connection quá nhiều, query thiếu index hoặc migration chạy thiếu kiểm soát.
Connection pooling
Ứng dụng web thường sinh nhiều request đồng thời. Nếu mỗi request mở một connection riêng và giữ quá lâu, database sẽ nhanh chóng chạm giới hạn. Connection pool giúp tái sử dụng kết nối và giới hạn áp lực lên PostgreSQL.
Các thông số nên theo dõi:
- Số connection đang mở
- Thời gian chờ lấy connection
- Query timeout
- CPU và memory của database
Index phải đi cùng query thật
Không nên tạo index theo cảm giác. Hãy bắt đầu từ các query thường xuyên chạy, dùng EXPLAIN ANALYZE để xem PostgreSQL scan bảng như thế nào, rồi mới thêm index phù hợp.
Index cũng có chi phí: ghi dữ liệu chậm hơn và tốn storage hơn. Vì vậy mỗi index nên phục vụ một mục đích cụ thể.
Migration cần có kế hoạch rollback
Migration production nên nhỏ, dễ đọc và chạy được nhiều lần trong pipeline. Với thay đổi lớn như đổi kiểu dữ liệu hoặc backfill bảng lớn, nên tách thành nhiều bước để tránh lock bảng quá lâu.
Backup không chỉ là file backup
Backup chỉ có giá trị khi team từng thử restore. Nên định kỳ kiểm tra restore sang môi trường tách biệt, đo thời gian phục hồi và ghi lại các bước cần làm khi có sự cố.