Tối ưu cấu trúc database WordPress sau nhiều năm vận hành

Sau một thời gian dài hoạt động, database của một website WordPress có thể trở nên phình to, rối rắm và sinh ra nhiều dữ liệu dư thừa gây ảnh hưởng đến hiệu suất truy vấn. Việc tối ưu lại cấu trúc database không chỉ giúp tăng tốc độ tải trang, mà còn giúp bạn tiết kiệm tài nguyên và chuẩn bị tốt hơn cho các đợt nâng cấp hoặc mở rộng.

Tối ưu cấu trúc database WordPress sau nhiều năm vận hành

1. Kiểm tra kích thước các bảng

Bắt đầu bằng việc kiểm tra xem bảng nào chiếm nhiều dung lượng nhất. Bạn có thể dùng công cụ như phpMyAdmin hoặc lệnh SQL sau:

SHOW TABLE STATUS LIKE 'wp_%';

Tập trung kiểm tra các bảng như:

  • wp_options: chứa cấu hình site và có thể bị phình to vì dữ liệu autoload
  • wp_postmeta: chứa dữ liệu tùy biến, thường bị lặp hoặc rác do plugin
  • wp_comments: chứa bình luận spam nếu không được kiểm duyệt kỹ

2. Xóa dữ liệu không cần thiết

  • Bản nháp tự động: được WordPress tạo mỗi vài phút
  • Revision: các bản lưu trước đó của bài viết
  • Transients: dữ liệu cache hết hạn không bị xóa
  • Spam/trash comments: nếu không được xử lý định kỳ

Sử dụng WP-CLI là cách tốt và an toàn:

wp post delete $(wp post list --post_type='revision' --format=ids) --force
wp transient delete --expired
wp comment delete $(wp comment list --status=spam --format=ids) --force

3. Dọn dẹp bảng wp_options

wp_options có thể chứa hàng nghìn dòng dữ liệu autoload = yes nhưng không còn dùng tới. Những dòng này được load vào mỗi lần truy cập trang chủ, ảnh hưởng lớn đến hiệu suất.

Kiểm tra 20 dòng có autoload cao nhất:

SELECT option_name, length(option_value) AS size 
FROM wp_options 
WHERE autoload = 'yes' 
ORDER BY size DESC 
LIMIT 20;

Nếu phát hiện dữ liệu từ plugin đã gỡ bỏ, bạn nên xóa nó đi.

4. Index hóa và chuẩn hóa cột

Một số plugin tạo meta query lặp đi lặp lại, nhưng bảng wp_postmeta mặc định không được index hiệu quả. Bạn có thể thêm index như sau:

ALTER TABLE wp_postmeta ADD INDEX meta_key (meta_key(191));

Nếu có plugin search nâng cao (như FacetWP, SearchWP), việc thêm index là rất cần thiết.

5. Tối ưu bảng bằng OPTIMIZE TABLE

Sau khi xóa dữ liệu rác, hãy tối ưu lại cấu trúc vật lý bảng:

OPTIMIZE TABLE wp_posts, wp_postmeta, wp_options, wp_comments, wp_commentmeta;

Hoặc với WP-CLI:

wp db optimize

6. Giám sát bằng plugin hoặc code tùy chỉnh

Một số plugin hữu ích:

Nếu bạn là lập trình viên, có thể viết cron job để tự động dọn dẹp theo chu kỳ.

Kết luận

Sau nhiều năm vận hành, database WordPress có thể trở thành “núi rác” nếu không được dọn định kỳ. Việc tối ưu hóa đúng cách giúp giảm truy vấn, tiết kiệm RAM, cải thiện trải nghiệm người dùng và đặc biệt quan trọng nếu bạn đang dùng hosting hạn chế tài nguyên. Hãy dành thời gian audit và tối ưu định kỳ – đó là khoản đầu tư bền vững.

Bình luận


  • Không có bình luận.