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

Sử dụng kết nối liên tục PHP-MySQL để chạy blog WordPress

Khi kết nối với cơ sở dữ liệu MySQL, nhật ký web WordPress dựa trên kịch bản PHP sẽ sử dụng kết nối không liên tục theo mặc định. Tức là, WordPress sẽ kích hoạt PHP để tạo một kết nối mới đến máy chủ MySQL cho mỗi yêu cầu trang động và sau đó đóng kết nối cơ sở dữ liệu khi quá trình xây dựng trang web hoàn tất. Việc mở và đóng lặp đi lặp lại các kết nối MySQL gây ra chi phí và sử dụng CPU, bộ nhớ và tài nguyên hệ thống quý giá trên máy chủ web.

Sử dụng kết nối liên tục để kết nối với máy chủ cơ sở dữ liệu MySQL không phải lúc nào cũng là một lựa chọn tốt. Mỗi kết nối chiếm tài nguyên, bao gồm bộ nhớ, bộ đệm, bảng hoặc chuỗi lưu trữ trong MySQL và các ổ cắm, tệp đang mở hoặc hoạt động IO ở cấp hệ điều hành. Do đó, khi nhiều kết nối liên tục được mở nhưng không được đóng lại sau khi giao dịch hoàn tất, tài nguyên trên hệ thống có thể cạn kiệt và làm giảm hiệu suất của máy chủ web hoặc trong trường hợp xấu nhất là gây ra lỗi HTTP. Hơn nữa, nếu một kết nối liên tục bị đình trệ, không hoạt động hoặc không còn tồn tại hoặc không còn được sử dụng, nó sẽ không bị chấm dứt và máy chủ MySQL sẽ chỉ đóng nó để giải phóng tài nguyên bị chiếm dụng bởi kết nối sau khoảng 28800 giây (8 giờ) theo mặc định trừ khi đã thay đổi thông số thời gian chờ trong tệp cấu hình my.cnf. Một số yếu tố này có thể gây ra các vấn đề như MySQL từ chối các kết nối DB mới hoặc máy chủ chậm nếu ứng dụng không xử lý đúng các kết nối liên tục.

Vì vậy, nếu bạn không có kinh nghiệm quản trị trang web, vui lòng không cố gắng thay đổi WordPress để sử dụng các kết nối liên tục.

Tuy nhiên, đối với những người viết blog có blog lớn và bận rộn, đồng thời phải đối mặt với những hạn chế trong việc nâng cấp thông số kỹ thuật hệ thống máy chủ web và không muốn sử dụng plugin bộ nhớ đệm trang tĩnh như WP-Cache, kết nối liên tục là một tùy chọn khả dụng để điều chỉnh và tối ưu hóa máy chủ web để xem liệu việc phân phát trang web có thể nhanh hơn không. Kết nối liên tục cho phép kết nối được mở một lần và sẽ không bị đóng khi quá trình thực thi tập lệnh kết thúc. Thay vào đó, liên kết được giữ trong nhóm và sẽ vẫn mở để sử dụng trong tương lai. Do đó, việc sử dụng các kết nối liên tục sẽ loại bỏ quá trình mở và đóng kết nối. Điều này sẽ gián tiếp làm giảm chi phí máy chủ liên quan đến kết nối MySQL, chẳng hạn như xác thực để thiết lập kết nối khi chỉ cần một lần, tiết kiệm thêm lưu lượng mạng và tài nguyên được sử dụng để xử lý kết nối bổ sung. Bên cạnh đó, có thể có một số bộ đệm cấp độ kết nối cần được lấp đầy để có hiệu suất phù hợp và có khả năng làm giảm số lượng kết nối đến cơ sở dữ liệu.

Theo mặc định, WordPress đang sử dụng hàm mysql_connect () để thiết lập một kết nối cơ sở dữ liệu mới trên mọi trang. Tính năng kết nối liên tục sẽ yêu cầu hàm mysql_pconnect () sử dụng cùng một API, nhưng có tích hợp kết nối tích hợp để giữ cho các kết nối tồn tại giữa các yêu cầu. Vì vậy, để chuyển sang sử dụng kết nối liên tục để chạy WordPress, hàm mysql_connect () phải được thay thế bằng mysql_pconnect ().

Để bật và sử dụng các kết nối liên tục với WordPress, chỉ cần đăng nhập vào máy chủ web của bạn bằng SSH (hoặc Telnet không an toàn) và thay đổi thư mục thành thư mục chính của webroot nơi blog WordPress được cài đặt.

Định vị và chỉnh sửa wp-config.php và thêm vào các dòng sau (hoặc thay đổi thành các giá trị sau nếu các hằng số đã tồn tại):

define('USE_PCONNECT', true);
define('WP_CACHE', false);

WordPress và PHP (miễn là bạn không tắt mysql.allow_persuality trong PHP.INI) sẽ ngay lập tức sử dụng các kết nối liên tục để kết nối với cơ sở dữ liệu MySQL. Bạn nên thử cài đặt nào phù hợp nhất với môi trường của mình.

Các bước sau đây cũng có thể thực hiện được, nhưng liên quan đến việc hack tệp lõi WordPress, do đó không được khuyến nghị và chỉ để lại trong bài viết này để tham khảo.

Thay đổi thư mục thành wp-include danh mục. Bên trong thư mục wp-include, có wp-db.php tập tin. Sử dụng bất kỳ trình soạn thảo văn bản nào chẳng hạn như vi để chỉnh sửa wp-db.php. Tìm kiếm hoặc định vị chức năng của mysql_connect (hoặc @mysql_connect ). Chỉ có một phiên bản của mysql_connect. Chỉ cần thay đổi mysql_connect thành mysql_pconnect , sau đó lưu và thoát khỏi wp-db.php.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết nối với Cơ sở dữ liệu MySQL trong .NET

  2. Cách xác định phiên bản MySQL

  3. Lấy tất cả các hàng cha trong một truy vấn SQL

  4. Cách thực hiện:Làm sạch công cụ lưu trữ mysql InnoDB?

  5. Làm cách nào để loại bỏ những nhận xét này trong MySQL dump?