Trên thực tế, các điều khoản tổng hợp kết nối và kết nối liên tục tham khảo điều tương tự trong trường hợp mysqli bằng PHP.
Kết nối liên tục trong trường hợp này đề cập đến kết nối MySQL mở từ tập lệnh PHP, kết nối này vẫn mở sau khi tập lệnh kết thúc thực thi, sẽ được sử dụng lại trong một số lần thực thi sau này.
Tổng hợp kết nối có nghĩa là có một nhóm các kết nối liên tục được duy trì bởi PHP. Một kết nối không hoạt động từ nhóm này được cấp cho tập lệnh PHP muốn kết nối với MySQL và được trả về nhóm khi tập lệnh kết thúc.
Bạn có thể tự hỏi tại sao chúng ta cần nhóm các kết nối MySQL, tại sao chúng ta không sử dụng chỉ một kết nối liên tục cho tất cả các tập lệnh?
Có hai lý do cho điều này:
- PHP tạo một nhóm các kết nối MySQL dựa trên
host/port/username/password
đã sử dụng. Nếu một tập lệnh muốn kết nối với MySQL bằng một sốhost/port/username/password
kết hợp, PHP tìm kiếm kết nối liên tục nhàn rỗi có cùng giá trị. Nếu không tìm thấy thì một kết nối liên tục mới sẽ được tạo vớihost/port/username/password
này sự kết hợp. Vì vậy, chúng tôi cần ít nhất nhiều kết nối liên tục khác nhau vì cóhost/port/username/password
khác nhau các giá trị được sử dụng bởi tất cả các tập lệnh. - Bạn không thể thực hiện đồng thời hai lệnh SQL trên một kết nối MySQL. Điều này có thể xảy ra khi hai tập lệnh PHP đang thực thi đồng thời. Khi hai tập lệnh muốn giao tiếp với MySQL cùng một lúc, hai kết nối MySQL liên tục được tạo. Số lượng kết nối liên tục trong nhóm bằng số lượng tập lệnh PHP song song tối đa cuối cùng được thực thi hoặc bằng giới hạn trên được đặt trong
php.ini
.
Thông báo quan trọng:
Nhóm kết nối MySQL (và bất kỳ nhóm kết nối nào khác) chỉ có thể tồn tại nếu PHP đang thực thi dưới dạng plugin máy chủ web . Các bể chứa không hoạt động khi nó đang hoạt động ở chế độ fast-cgi hoặc theo bất kỳ cách nào khác khi tệp thực thi PHP kết thúc sau khi thực thi tập lệnh.
Chỉnh sửa:Tổng hợp kết nối MySQL có thể được sử dụng trong chế độ fast-cgi của PHP nếu máy chủ web được định cấu hình để sử dụng lại một quy trình fast-cgi PHP cho nhiều yêu cầu. Nếu quy trình fast-cgi PHP được định cấu hình để thoát sau khi cung cấp một yêu cầu thì tất cả các kết nối MySQL của nó đều bị đóng.