Admin WordPress bị chậm - Đây là cách tối ưu cho trang quản trị nhanh hơn

Admin WordPress bị chậm - Đây là cách tối ưu cho trang quản trị nhanh hơn

Với phương pháp này, mình tin là trang quản trị WordPress của bạn sẽ tăng tốc độ load lên gấp 10 lần so với hiện tại. Dữ liệu này được đo đếm từ bài test thực tế của bên mình.
Toi uu admin wordpress tang toc do 10 lan.jpg

Sử dụng WooCommerce với lượng sản phẩm nhiều, bạn sẽ nhận thấy tình trạng web chậm dần ở trong phần quản trị, đặc biệt là khi cập nhật sản phẩm, hoặc trong trang danh sách các sản phẩm. Code Tốt đã có thử nghiệm một số cách để giảm tình trạng này thông qua tối ưu MySQL cho WooCommerce.

Theo dõi và nhận biết chỉ số web chậm bằng Query Monitor​

Đầu tiên, cài plugin Query Monitor, sau đó bạn cần xem thông số tải trang trong trang Danh sách sản phẩm và thử sửa 1 vài sản phẩm có bị chậm không đã nhé. Nếu thấy mức load trang phải tầm 5s trong nhiều lần truy cập, vậy là bạn nên nghĩ tới việc tối ưu.
Về nghiên cứu này:
Code Tốt có những dự án e-commerce với lượng sản phẩm từ 1k đến 10k, nhưng trong bài viết này, mình thử nghiệm với các size dự án:

  • 1 web shop có 902 sản phẩm, nhưng mỗi sản phẩm nhiều biến thể, và có thêm mục kho hàng (nhiều địa điểm)
  • 1 web shop có 2700 sản phẩm, nhưng thiết kế database dạng flat tức ít sản phẩm biến thể, chủ yếu là sản phẩm nhập lên

Tối ưu MySQL dành cho môi trường Hosting/VPS​

Đầu tiên, phải khẳng định tài nguyên VPS (với thông số CPU, RAM bạn được sử dụng) thì vẫn ổn hơn shared (được chia sẻ nhiều tài khoản trên Hosting).

Với dịch vụ VPS

Ta cần tiến hành bước cấu hình sơ bộ service setting cho MySQL hoặc MariaDB, thường là sửa file /etc/my.cnf

Các thông số này cần yêu cầu kỹ thuật và theo dõi để điều chỉnh trong vòng 1-3 round (làm đi làm lại) cho tới khi đạt.

Ngoài ra, tối ưu PHP process cũng là một ưu tiên quan trọng, ví dụ như mình thấy hiệu suất đã cải thiện vào MySQL thì sẽ được tư vấn về tối ưu PHP process giảm xuống hoặc cho mức accept connection cao hơn. Về việc này, bạn nên làm việc với đơn vị hosting có cung cấp dịch vụ Managed VPS như 123Host hoặc InterData nhé.

Với dịch vụ Shared Hosting, bạn nên tăng mức cấu hình PHP lên thông qua file wp-config.php
PHP:
define('WP_MEMORY_LIMIT', '512M');
define('WP_MAX_MEMORY_LIMIT, '768M');

Tối ưu WooCommerce MySQL từ trang Quản trị WordPress​

Về phía trang Quản trị, mình đã thử nghiệm và nhận ra việc thiếu key index là vấn đề chính, vì nó chủ yếu ảnh hưởng tới Duplicate Queries (bạn xem trong Query Monitor sẽ thấy rõ).

Các duplicate query bao gồm:

  • Thông tin user, ví dụ một user là tác giả nhiều sản phẩm bị liên tục call đi call lại mà không có index.
  • Thông tin danh mục sản phẩm, ví dụ nhiều sản phẩm thuộc cùng 1 danh mục, nhưng dữ liệu về danh mục đó chưa được index dẫn đến bị trùng lặp rất nhiều.
Các bước tiến hành cài đặt và cấu hình Index MySQL như sau:

1. Cài đặt plugin Index WP MySQL For Speed (chưa có ngôn ngữ tiếng Việt, nhưng bạn có thể đóng góp bản dịch ở đây).

2. Vào menu Công cụ > Index MySQL

3. Đưa các table sau vào Index: (mục Add keys, nhớ bấm I have a backup)
PHP:
wp_options (x rows, approximately)
wp_postmeta (x rows, approximately)
wp_posts (x rows, approximately)
wp_termmeta (x rows, approximately)
wp_usermeta (x rows, approximately)
wp_users (x rows, approximately)
wp_wc_orders_meta (x rows, approximately)
wp_woocommerce_order_itemmeta (x rows, approximately)
Nếu bạn đang bật chức năng Bình luận hoặc Review sản phẩm, thì mới thêm 2 table
Mã:
wp_comments
wp_commentmeta
Một khi bạn thêm thành công, trên màn hình sẽ hiện như sau:
1731988132408.png


Tối ưu MySQL WooCommerce bằng bộ nhớ đệm Caching​

Để cải thiện tốc độ tải trang quản trị, bạn tiến hành làm như sau:

  1. Cài đặt plugin Caching phổ biến, như LiteSpeed Cache hoặc W3 Total Cache. Nếu đang dùng plugin khác, bạn thử tìm các tuỳ chọn tương tự như bên dưới.
  2. Bật các option: Cache Logged-in User (tức bao gồm cả cache dành cho người dùng đã đăng nhập).
  3. Xoá cache và kiểm tra

Kết quả kiểm tra thử nghiệm trên Query Monitor​

Dưới đây là kết quả của trước khi tối ưu và sau khi tối ưu.
1731988170099.png
1731988148118.png

Trước khi thực hiện:

Trang danh sách sản phẩm (trong admin) load ~10 giây, có nhiều duplicate query, đặc biệt là về user, danh mục sản phẩm (vì hiện trong các cột của danh sách sản phẩm)

Trang sửa sản phẩm load khoảng 15 giây, có nhiều duplicate query, đặc biệt là về user

Sau khi thực hiện:

Trang danh sách sản phẩm: load khoảng 4-5 giây

Trang sửa sản phẩm: load khoảng 4 giây

Kết luận​

Như Code Tốt đã chia sẻ, bạn sẽ cần tiến hành các bước sau:
  • Tối ưu sơ bộ từ môi trường hosting/VPS bằng các cấu hình tối ưu WooCommerce MySQL mình đề xuất.
  • Cài đặt và cấu hình plugin Index MySQL giúp giảm các duplicate query
Nội dung bài viết chia sẻ từ Codetot​
 
Sửa lần cuối: