Có thể lưu các kết nối cơ sở dữ liệu khi sử dụng PHP giống như trong một thùng chứa J2EE không? Nếu vậy, làm thế nào?Kết nối tổng hợp trong PHP
Trả lời
Bạn không thể khởi tạo các nhóm kết nối theo cách thủ công.
Nhưng bạn có thể sử dụng kết nối "tích hợp sẵn" với chức năng mysql_pconnect.
Tôi cho rằng bạn đang sử dụng mod_php, phải không?
Khi tệp PHP kết thúc thực thi tất cả trạng thái của nó bị giết nên không có cách nào (trong mã PHP) để thực hiện kết nối tổng hợp. Thay vào đó, bạn phải dựa vào tiện ích mở rộng.
Bạn có thể mysql_pconnect để kết nối của bạn sẽ không bị đóng sau khi trang kết thúc, theo cách đó chúng sẽ được sử dụng lại trong yêu cầu tiếp theo.
Đây có thể là tất cả những gì bạn cần nhưng điều này không giống như kết nối tổng hợp vì không có cách nào để chỉ định số lượng kết nối để duy trì mở.
Chúc mừng.
Kết nối có thể được tái sử dụng bởi những người dùng khác nhau không? Nếu vậy, tại sao sổ tay nói rằng chúng ta nên cấu hình MySQL để tránh quá nhiều kết nối? – omg
Không có kết nối tổng hợp bằng php.
mysql_pconnect và kết nối tổng hợp là hai thứ khác nhau. Có nhiều vấn đề được kết nối với mysql_pconnect
và trước tiên bạn nên đọc hướng dẫn và sử dụng cẩn thận, nhưng đây không phải là kết nối tổng hợp.
Kết nối tổng hợp là một kỹ thuật mà máy chủ ứng dụng quản lý các kết nối. Khi ứng dụng cần kết nối, nó sẽ yêu cầu máy chủ ứng dụng cho nó và máy chủ ứng dụng trả về một trong các kết nối được gộp chung nếu có một kết nối miễn phí.
Chúng ta có thể làm kết nối mở rộng quy mô trong php cho rằng xin vui lòng đi qua đường dẫn sau: http://www.oracle.com/technetwork/articles/dsl/white-php-part1-355135.html
Vì vậy, không kết nối pooling trong php.
Như Julio đã nói apache giải phóng tất cả các tài nguyên khi yêu cầu kết thúc cho các yêu cầu hiện tại. Bạn có thể sử dụng mysql_pconnect nhưng bạn bị giới hạn với hàm đó và bạn phải rất cẩn thận. Lựa chọn khác là sử dụng mẫu đơn, nhưng không có thứ nào trong số này được gộp chung.
Đây là một bài viết tốt: http://blogs.oracle.com/opal/2007/01/highly_scalable_connection_poo.html
Cũng đọc một http://www.apache2.es/2.2.2/mod/mod_dbd.html
Không có kết nối tổng hợp? Wow. – Justin
"Kết nối với máy chủ SQL sẽ không bị đóng khi thực thi tập lệnh kết thúc". - http://www.php.net/manual/en/function.mysql-pconnect.php – RandomSeed
Liên kết hoạt động cho blog oracle: https://blogs.oracle.com/opal/entry/highly_scalable_connection_poo –
kết nối liên tục không có gì giống như kết nối tổng hợp. Một kết nối liên tục trong php sẽ chỉ được tái sử dụng nếu bạn thực hiện nhiều db kết nối trong cùng một bối cảnh thực thi lệnh/script. Trong hầu hết các kịch bản web dev điển hình, bạn sẽ tối đa hóa kết nối nhanh hơn nếu bạn sử dụng mysql_pconnect vì tập lệnh của bạn sẽ không có cách nào để tham chiếu đến bất kỳ kết nối mở nào theo yêu cầu tiếp theo của bạn. Cách tốt nhất để sử dụng các kết nối db trong php là tạo một cá thể đơn lẻ của một đối tượng db để kết nối được tái sử dụng trong bối cảnh thực thi tập lệnh của bạn. Điều này vẫn phải chịu ít nhất 1 db kết nối cho mỗi yêu cầu, nhưng nó tốt hơn làm cho nhiều db kết nối mỗi reqeust.
Không có kết nối db thực sự tổng hợp trong php do bản chất của php.Php không phải là một máy chủ ứng dụng có thể ngồi ở đó giữa các yêu cầu và quản lý các tham chiếu đến một nhóm các kết nối mở, ít nhất là không có một số loại hack lớn. Tôi nghĩ về lý thuyết bạn có thể viết một máy chủ ứng dụng trong php và chạy nó như là một tập lệnh dòng lệnh sẽ chỉ ở đó trong nền và giữ một loạt các kết nối db mở và chuyển các tham chiếu đến chúng tới các kịch bản khác của bạn, nhưng tôi không biết điều đó có thể thực hiện được không, làm thế nào bạn có thể chuyển các tham chiếu từ kịch bản lệnh của bạn sang các kịch bản khác, và tôi nghi ngờ nó sẽ hoạt động tốt ngay cả khi bạn có thể kéo nó ra. Dù sao thì đó chủ yếu là suy đoán. Tôi đã chỉ cần thông báo liên kết một người nào khác được đăng lên một mô-đun apache để cho phép kết nối tổng hợp cho các máy chủ prefork như php. Có vẻ thú vị: https://github.com/junamai2000/mod_namy_pool#readme
"Kết nối đến máy chủ SQL sẽ không bị đóng khi thực thi kịch bản kết thúc. " - http://www.php.net/manual/en/function.mysql-pconnect.php – RandomSeed
điều này không chính xác trên PHP-FPM và Apache/mod_php. –
"Cách tốt nhất để sử dụng kết nối db trong php là tạo một thể hiện đơn lẻ của đối tượng db để kết nối được tái sử dụng trong ngữ cảnh thực thi tập lệnh của bạn." - Đây là ngỗng vàng tôi đang tìm kiếm. Cách tuyệt vời để giải thích chính xác nơi và tại sao singleton sẽ hữu ích! – samazi
Bạn có thể sử dụng MySQLi.
Mọi chi tiết, di chuyển xuống kết nối tổng hợp phần @http://www.php.net/manual/en/mysqli.quickstart.connections.php#example-1622
Lưu ý rằng kết nối tổng hợp cũng phụ thuộc vào máy chủ của bạn (ví dụ: Apache httpd) và cấu hình của nó.
- 1. mongodb và php: kết nối tổng hợp
- 2. kết nối eclipselink tổng hợp
- 3. Kết nối tổng hợp mongodb
- 4. Kết nối tổng hợp trong bóng bẩy?
- 5. MySQL - kết nối liên tục vs kết nối tổng hợp
- 6. Kết nối tổng hợp trong .NET/SQL Server?
- 7. Khuôn khổ thực thể và kết nối tổng hợp
- 8. Kết nối tổng hợp với cơ sở dữ liệu Access
- 9. Kết nối php gộp mysql
- 10. Làm thế nào để quyết định số lượng kết nối cần thiết trong kết nối tổng hợp?
- 11. Truy vấn tổng hợp và không tổng hợp kết hợp trong SQL
- 12. Tổng phí tạo kết nối TCP
- 13. PHP memcache kết nối
- 14. Kết nối tổng hợp trong nút-mongodb-native, khi nào nên gọi db.open và db.close
- 15. kết nối tổng hợp và các câu lệnh chuẩn bị với groovy.sql.Sql hoặc JDBC trong Grails
- 16. Kết nối Perl Kết nối
- 17. Bảng tổng hợp không có tổng hợp?
- 18. Kết nối cơ sở dữ liệu tổng hợp với dịch vụ đa luồng
- 19. Tại sao chúng ta cần kết nối tổng hợp cho JDBC?
- 20. MongoDB: Kết nối tổng hợp và thời gian chờ là gì?
- 21. pymongo kết nối tổng hợp và yêu cầu của khách hàng
- 22. Cách tạo kết quả tổng hợp "trống" trong SQL
- 23. Kiểm tra kết nối php/mysqli
- 24. Kết nối với WebDAV bằng PHP?
- 25. đa loại mảng kết hợp trong PHP
- 26. Kết hợp các tệp trong PHP
- 27. tạo mảng mảng kết hợp trong PHP
- 28. Có thể kết hợp tổng hợp bằng FetchXml trong Microsoft Dynamics CRM 4.0 không?
- 29. tổng hợp/tổng hợp với ggplot
- 30. Tổng của một hàng của một mảng kết hợp bằng cách sử dụng PHP?
Làm thế nào về điều này? https://github.com/junamai2000/mod_namy_pool – nam
Bạn đã xem kết nối liên tục bằng [mysql_pconnect()] (http://www.php.net/mysql_pconnect) chưa? –