Kỹ thuật này sẽ giúp bạn cải thiện tốc độ nhanh hơn 30% tố độ mysql khi sử dụng unix socket thay vì IP TCP. Không chỉ là tăng tốc mà còn nâng cao bảo mật hơn rất nhiều.
Tăng tốc tốc độ MYSQL wordpess khi sử dụng giao thức unix socket. và loại bỏ thời gian phân giải DNS localhost.
Chắc như bạn đã biết thì WordPress sử dụng SQL cơ sở dữ liệu rất nhiều đặc biệt là những website thương mai điện tử thì sử dụng còn nhiều hơn, hôm nay mình chia sẻ một thủ thuật nho nhỏ để cải thiện tốc độ cơ sở dữ liệu dành cho wordpess.
Giờ chúng ta bắt đầu nhé.
Unix doamin socket là gì và giúp ích gì?
Unix doamin socket thường gọi tắt là Unix stocket Đây hiệu ngắn gọn là một giao thức kết nối truyền dữ liệu máy tính trong máy tính. (trao đổi dữ liệu hai chiều giữa tiến trình đang chạy trên cùng một máy)
Còn TCP/IP sockets là một cơ chế cho phép giao tiếp qua mạng (có thể là mạng internet hoặc mạng lan) thường sẽ kết nối máy tính này giao tiếp trao đổi giữ liệu với máy tính khác dùng như vậy. Tận chí Trong một số trường hợp, bạn có thể sử dụng ổ cắm TCP / IP để nói chuyện với các tiến trình đang chạy trên cùng một máy tính giống như Unix socket (đương nhiên là không lên làm như vậy rồi tốc độ truyền giữ liệu sẽ bị giảm đi và an toàn bảo mật sẽ kém hơn).
UNIX biết rằng chúng đang thực thi trên cùng một hệ thống localhost, vì vậy chúng có thể giảm một số công việc kiểm tra DNS kết nối bla bla còn chưa nói là rủi ro vật lý khi sử dụng TCP IP giả sự như mạng kết nối bị chục chặc cá mập cắn cáp bla bla… cũng đau đầu vì điều này Unix stocket chúng nhanh hơn và nhẹ hơn và bảo hơn so với TCP/IP sockets.
Vì vậy, nếu bạn định giao tiếp với các tiến trình trên cùng một máy webhost, đây là một lựa chọn tốt hơn so với các ổ cắm IP. nếu có điều kiện đang kết nối sql vừa sử lý công việc là máy chủ websever vừa là máy chủ cơ sở dữ liệu thì đây là điều kiện chạy unix stocket (mô hình webhost này môt hình phổ biến nhất thường được sử dụng trong web hosting nhỏ và vừa) trong điều kiện bất khả kháng như máy chủ websever của bạn là máy chủ khác và máy chủ sql cơ sở dữ liệu là một máy chủ khác thì được nhiên phải sử dụng TCP/IP sockets rồi.
Khái niệm hàn lâm quá sợ mọi người hơi khó hiệu thì mình sẽ giải thích như thế này.
Bạn và người yêu bạn ở cạch nhau cách nhau 2m, giao tiếp nói chuyện với nhau thì chỉ cần em ơi anh bảo này rồi nói chuyện (được ví như Unix stocket) bạn không nhất thiết phải bỏ điện thoại ra gọi điện cho người yêu bạn với điều kiện khoảng cách như vậy (gọi điện thoại được ví như là TCP/IP sockets. trong trường hợp khoảng cách bạn và người yêu của bạn đang ở gần nhau thì dùng unix stocket còn trong trường hợp khoảng cách bạn cách xa người yêu bạn 100km thì muốn liên lạc giao tiếp thì phải gọi điện thoại (TCP/IP sockets).
Hướng dẫn tăng tốc MYSQL WordPress
những thiết lập cài đặt kết nối MYSQL cơ sở dữ liệu của WordPress ở trong file wp-config.php
, vì vậy đồng nghĩa với việc phải tùy chỉnh trong file wp-config.php.
file wp-config.php nằm ngay với thư mục root mã nguồn của bạn.
Mình sẽ chia sẻ thủ thuật cơ bản trước, rồi đến thủ thuật nâng cao dành cho anh em dân đam mê tốc độ load website.
Bạn có thể áp dụng thủ thuật: /** MySQL hostname */ trong wp config.php
define( 'DB_HOST', 'localhost' );
thay bằng
define( 'DB_HOST', '127.0.0.1' );
Thủ thuật này sẽ cải thiện được một chút tốc độ kết nối sql cơ sơ dữ liệu của bạn, nó không phải mất công phân giải dns localhost sang 127.0.0.1 nữa.
Như vậy là đã cải thiện được một chút về tốc độ kết nối sql. một thủ thuật cơ bản như vậy.
Cách này là kỹ thuật cơ bản cũng giúp tăng tốc mysql và đặc biệt an toàn nhưng bạn đúng nghĩa là dân đam mê tốc độ load như mình thì hãy nghiên cứu cách nâng cao nhé.
Khi bạn áp dụng thủ thuật nâng cao rồi, thì không cần thiết phải áp dụng để ý áp dụng kỹ thuật cơ bản ở bên trên mình có vừa chia sẻ.
Bây giờ bữa chính mới bắt đầu nhé. đây là thủ thuật nâng cao cũng hơi khó làm. nhưng không sao khó thì đã có mình, mình sẽ cố gắng hướng dẫn chi tiết nhất để các bạn có thể dễ dàng thực hiện nhất nhé.
Bây giờ ứng dụng unix stocket vào cho WordPress. bạn có thể ứng dụng tất cả mọi máy chủ web hosting đặc biệt ở đây mình sẽ hướng dẫn tập trung vào máy chủ linux.
Bước 1: Xác định vị trí của file mysql.sock
bạn dùng phần mềm phần mềm netstat.
cách cài đặt:
Với Centos
yum install net-tools -y
Với ubuntu
apt install net-tools -y
rồi bạn nhập dòng lệnh này vào trong terminal.
netstat -ln | grep "unix.*mysql"
Kết quả sẽ trả về giá trị.
Mysql stock của mình nằm ở: /opt/lampp/var/mysql/mysql.sock
Tùy vào máy chủ của bạn đang sử dụng có thể sẽ thư mục của mysql.stock sẽ khác nhau.
cũng có thể thường là: /var/lib/mysql/mysql.sock
hoặc /var/run/mysqld/mysqld.sock
để biết chính xác nhất thì bạn phải check kiểm tra như mình đã có hướng dẫn cách kiểm tra.
Bước 2: Thay thế tùy chỉnh trong phần wp-config.php
define('DB_HOST', ':/opt/lampp/var/mysql/mysql.sock');
Thay thế chính xác: :/opt/lampp/var/mysql/mysql.sock
bằng đường dẫn của bạn nhé.
Xong rồi lưu lại và tận hưởng thành quả nhé.
Bạn có thể tham khảo thêm bài viết: Dọn dẹp tối ưu cơ sở dữ liệu WordPress để giúp cơ sở dữ liệu của bạn hoạt động một cách hiệu quả hơn nhé.
Nguyễn Công Phúc đã bình luận:
Trong WP Tăng Tốc
VPS thì tự làm được rồi, hosting thì có làm được không nhỉ?
Quoc đã bình luận:
Trong WP Tăng Tốc
Làm trên share host đc ko và làm như thế nào vậy bác ơi?
Gia Tuấn đã bình luận:
Trong WP Tăng Tốc
thì nó cũng tương tự thôi, share hosting thì hỏi nhà cung cấp share hosting họ cái này hiểu rõ, hoặc một số share hosting thì có terminal thì bạn cũng có thể tự xác định.
Hải Trần đã bình luận:
Trong WP Tăng Tốc
define(‘DB_HOST’, ‘:/opt/lampp/var/mysql/mysql.sock’);
Bỏ dấu : đi Tuấn ơi, sai cái đường dẫn rồi, cố tình hay vô tình đây?
Gia Tuấn đã bình luận:
Trong WP Tăng Tốc
cố tính hay vô tình gì hả anh, em thì test thì thêm dấu : vẫn ngon hơn, đường dẫn này là đường dẫn lampp xampp của linux :/opt/lampp/var/mysql/mysql.sock mỗi một cấu hình webserver thì có thể đường dẫn sẽ khác nhau anh check kỹ chuẩn đường dẫn của webserver mình là gì thì hãy apply vào nhé, không thì lỗi ngay.
Hải đã bình luận:
Trong WP Tăng Tốc
Oh, là do a ko biết. Hôm nay chuyển localhost thành MySQL sock thì NinjaFirewall báo không kết nối được với CSDL.
“NinjaFirewall fatal error: Cannot connect to WordPress database. Review your installation, your site is not protected”
Search mới biết còn có thể viết DB_HOST thành như
define(‘DB_HOST’, ‘localhost:/var/lib/mysql/mysql.sock’);
Cheers,
Gia Tuấn đã bình luận:
Trong WP Tăng Tốc
thêm localhost: cũng được hoặc không cần localhost: cũng được và sử dụng : cũng được nhưng em test hiệu suất thì chỉ cần thêm : là tốt nhất, và quan trọng nhất là được dẫn phải chuẩn