2. 19:10 12/08/2026
Chào bạn Quỳnh Như,
Persistent connection có thể giảm chi phí mở kết nối trong một số mô hình PHP-FPM, nhưng nó biến connection thành tài nguyên được tái sử dụng nên mọi session state phải được quản lý nghiêm ngặt. Đừng bật chỉ vì nghe nói nhanh hơn; trước hết hãy đo connection churn, DB CPU, max_connections, latency và cách hạ tầng của bạn đang pool/tái sử dụng kết nối.
Nếu cân nhắc dùng:
1. Mỗi request phải kết thúc transaction rõ ràng: commit hoặc rollback. Không để transaction mở và trông chờ request kế tiếp xử lý.
2. Tránh dựa vào trạng thái connection bí mật như temp table, user variable, SQL mode, time zone hoặc session setting mà không khởi tạo lại theo một chuẩn nhất quán khi checkout connection.
3. Đặt charset, error mode, timezone và các setting cần thiết ngay trong quá trình tạo/khởi tạo connection, đồng thời kiểm thử request xen kẽ giữa nhiều user/tenant.
4. Kiểm soát max_connections và số FPM worker; nhiều process có persistent connection vẫn có thể làm database cạn connection.
5. Theo dõi abandoned transaction, connection age, wait timeout, lỗi too many connections và slow query.
Với nhiều ứng dụng PHP thông thường, connection không persistent cùng PDO cấu hình tốt đã đủ đơn giản và an toàn. Quyết định chỉ nên được đưa ra sau benchmark và review các session state mà ứng dụng có thể tạo.
0