Kết nối liên tục không cần thiết đối với MySQL. Trong các cơ sở dữ liệu khác (như Oracle), việc tạo kết nối tốn kém và tốn thời gian, vì vậy nếu bạn có thể sử dụng lại kết nối thì đó là một chiến thắng lớn. Nhưng những thương hiệu của cơ sở dữ liệu cung cấp kết nối tổng hợp, mà giải quyết vấn đề một cách tốt hơn.
Tạo kết nối tới cơ sở dữ liệu MySQL nhanh chóng so với các nhãn hiệu khác, vì vậy việc sử dụng kết nối liên tục mang lại lợi ích ít hơn cho MySQL so với một thương hiệu cơ sở dữ liệu khác.
Kết nối liên tục cũng có nhược điểm. Máy chủ cơ sở dữ liệu phân bổ tài nguyên cho mỗi kết nối, cho dù các kết nối có cần thiết hay không. Vì vậy, bạn thấy rất nhiều tài nguyên lãng phí không có mục đích nếu các kết nối không hoạt động. Tôi không biết nếu bạn sẽ đạt đến 10.000 kết nối nhàn rỗi, nhưng ngay cả một vài trăm là tốn kém.
Các kết nối có trạng thái và sẽ không phù hợp với yêu cầu PHP để "kế thừa" thông tin từ một phiên trước đó được sử dụng bởi một yêu cầu PHP khác. Ví dụ, các bảng tạm thời và biến người dùng thường được dọn sạch khi kết nối đóng, nhưng không phải nếu bạn sử dụng các kết nối liên tục. Các cài đặt dựa trên phiên tương tự như tập ký tự và đối chiếu. Ngoài ra, LAST_INSERT_ID()
sẽ báo cáo id được tạo lần cuối trong phiên - ngay cả khi đó là trong yêu cầu PHP trước đó.
Đối với MySQL ít nhất, nhược điểm của các kết nối liên tục có thể lớn hơn lợi ích của chúng. Và có những kỹ thuật khác, tốt hơn để đạt được khả năng mở rộng cao.
Cập nhật Tháng 3 năm 2014:
tốc độ kết nối MySQL luôn thấp so với các nhãn hiệu khác của RDBMS, nhưng nó nhận được thậm chí tốt hơn.
Xem http://mysqlserverteam.com/improving-connectdisconnect-performance/
Trong MySQL 5.6, chúng tôi bắt đầu làm việc tối ưu hóa xử lý kết nối và ngắt kết nối mã. Và công việc này đã tăng tốc trong MySQL 5.7. Trong bài đăng trên blog này, trước tiên tôi sẽ hiển thị các kết quả chúng tôi đã đạt được và sau đó mô tả những gì chúng tôi đã làm để có được chúng.
Đọc blog để biết thêm chi tiết và so sánh tốc độ.
Trong nhiều phiên bản gần đây của PHP so với khi tôi đã viết bài trả lời này, tôi đã phát hiện ra rằng hiện nay có các thiết lập để điều chỉnh kích thước hồ bơi. Đặc biệt, 5.4.0 có tùy chọn 'mysqli.max_persistent' là kích thước tối đa của nhóm kết nối trong trường hợp đó của PHP. Vẫn không có một giá trị trong PHP để định thời gian kết nối. – staticsan