Chào cả nhà,
Nhiều bạn làm web bán hàng WooCommerce, lúc đầu nhanh như gió, sau khi up vài nghìn sản phẩm thì backend quay mòng mòng, khách checkout đợi dài cổ. Nguyên nhân 80% đến từ Database phình to .
Dưới đây là vài checklist mình hay làm để “giảm béo” cho DB:
1. Xử lý bảng wp_options và Transients
WooCommerce sinh ra rất nhiều dữ liệu tạm (Transients) liên quan đến giỏ hàng, session… Lâu ngày nó không tự xóa, làm bảng wp_options nặng trịch.
- Giải pháp: Dùng plugin như WP-Optimize hoặc Advanced Database Cleaner để xóa sạch Transients đã hết hạn (Expired).
2. Tắt tính năng Revision (Bản lưu nháp)
Mỗi lần bạn sửa giá sản phẩm, WP lưu lại một bản nháp. 1 sản phẩm sửa 10 lần là có 10 bản rác. 1000 sản phẩm là 10.000 dòng rác trong DB.
- Giải pháp: Thêm dòng define(‘WP_POST_REVISIONS’, 3); vào file wp-config.php để giới hạn chỉ lưu 3 bản gần nhất.
3. Đánh chỉ mục (Index) cho Database
WooCommerce mặc định đánh index khá tốt, nhưng với các site lớn, cần đánh thêm index cho các bảng postmeta để query lọc sản phẩm (theo màu, size) nhanh hơn. Có thể dùng plugin Index WP MySQL For Speed .
Lưu ý sống còn: Luôn BACKUP database trước khi đụng vào.
Mọi người có kinh nghiệm nào tối ưu query cho Woo không?
