Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

mysql_connect VS mysql_pconnect

Các kết nối liên tục sẽ không cần thiết đối với MySQL. Trong các cơ sở dữ liệu khác (chẳng hạn như Oracle), việc tạo kết nối rất 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ơ sở dữ liệu đó cung cấp tính năng tổng hợp kết nối, giúp giải quyết vấn đề theo cách tốt hơn.

Việc tạo kết nối với cơ sở dữ liệu MySQL nhanh hơn so với các thương hiệu khác, vì vậy việc sử dụng kết nối liên tục mang lại ít lợi ích hơn cho MySQL so với các thương hiệu cơ sở dữ liệu khác.

Các kết nối lâu dài cũng có một mặt trái. 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 sẽ thấy rất nhiều tài nguyên bị 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 liệu bạn có đạt được 10.000 kết nối không hoạt động hay không, nhưng thậm chí vài trăm kết nối cũng rất tốn kém.

Các kết nối có trạng thái và sẽ không thích hợp để một yêu cầu PHP "kế thừa" thông tin từ một phiên đã được sử dụng trước đó bởi một yêu cầu PHP khác. Ví dụ:các bảng tạm thời và các biến người dùng thường được dọn dẹp khi một kết nối đóng lại, nhưng không phải nếu bạn sử dụng các kết nối liên tục. Tương tự như vậy, các cài đặt dựa trên phiên như đặt 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 một yêu cầu PHP trước đó.

Đối với MySQL, 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 thương hiệu RDBMS khác, nhưng nó thậm chí còn tốt hơn.

Xem http://mysqlserverteam.com/improving-connectdisconnect-performance/

Đọc blog để biết thêm chi tiết và so sánh tốc độ.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cột không xác định trong 'mệnh đề có'

  2. Cách tốt nhất để phát triển / quản lý / thiết kế các nhiệm vụ / lịch định kỳ

  3. Ruby:mysql2-Gem không hoạt động (Mac OS X Snow Leopard, Ruby 1.9.2)

  4. Làm thế nào để chạy lệnh MySQL trên bash?

  5. Đo điểm chuẩn hiệu suất của MySQL:MySQL 5.7 so với MySQL 8.0