Lỗi "possible dead lock" liên quan đến YITH WooCommerce Ajax Product Filter thường xảy ra khi hệ thống cơ sở dữ liệu (MySQL/MariaDB) bị treo do có quá nhiều truy vấn đồng thời cùng yêu cầu khóa (lock) một bảng dữ liệu, đặc biệt là bảng tra cứu thuộc tính của WooCommerce.
Dưới đây là các bước tối ưu và xử lý triệt để lỗi này một cách nhanh chóng:
1. Cập nhật bảng dữ liệu (Regenerate Lookup Tables)
Đây là cách phổ biến nhất để đồng bộ lại dữ liệu và giảm thiểu xung đột khóa trên database.
2. Tối ưu hóa Bộ nhớ Tạm (Transients) & Cache
Xung đột thường sinh ra khi bộ đệm bị lỗi. Hãy đảm bảo plugin bộ nhớ đệm (như LiteSpeed Cache, WP Rocket, Redis, v.v.) của bạn đang hoạt động bình thường và xóa toàn bộ bộ nhớ đệm sau khi cập nhật các thiết lập trên.
3. Tối ưu cài đặt Bộ lọc YITH
Nếu website của bạn có quá nhiều thuộc tính (attributes) hoặc lượng lớn sản phẩm, quá trình đếm số lượng (Count) khi lọc có thể làm quá tải database.
4. Nâng cấp phiên bản
Đảm bảo rằng plugin YITH WooCommerce Ajax Product Filter và WooCommerce của bạn đã được cập nhật lên phiên bản mới nhất để nhận các bản vá lỗi về hiệu suất và bảo mật.
5. Kiểm tra tài nguyên Database (Nâng cao)
Nếu lỗi liên tục lặp lại trên máy chủ, có thể database của bạn đang bị thiếu chỉ mục (index) gây ra tình trạng khóa toàn bộ bảng (table lock). Hãy nhờ quản trị viên server kiểm tra log MySQL (show engine innodb status) để tìm nguyên nhân gốc rễ và thêm chỉ mục cho các cột thường xuyên được truy vấn.
Good luck!
Dưới đây là các bước tối ưu và xử lý triệt để lỗi này một cách nhanh chóng:
1. Cập nhật bảng dữ liệu (Regenerate Lookup Tables)
Đây là cách phổ biến nhất để đồng bộ lại dữ liệu và giảm thiểu xung đột khóa trên database.
- Truy cập vào trang quản trị WordPress.
- Đi đến WooCommerce > Status (Trạng thái) > Tools (Công cụ).
- Tìm và bấm nút thực thi cho các mục sau:
- Regenerate the product attributes lookup table (Tạo lại bảng tra cứu thuộc tính sản phẩm).
- Clear Product Filter transients (Xóa tạm thời bộ lọc sản phẩm).
- Clear Product Filter sessions (Xóa phiên bộ lọc sản phẩm).
- Product lookup tables (Bảng tra cứu sản phẩm - nếu có).
2. Tối ưu hóa Bộ nhớ Tạm (Transients) & Cache
Xung đột thường sinh ra khi bộ đệm bị lỗi. Hãy đảm bảo plugin bộ nhớ đệm (như LiteSpeed Cache, WP Rocket, Redis, v.v.) của bạn đang hoạt động bình thường và xóa toàn bộ bộ nhớ đệm sau khi cập nhật các thiết lập trên.
3. Tối ưu cài đặt Bộ lọc YITH
Nếu website của bạn có quá nhiều thuộc tính (attributes) hoặc lượng lớn sản phẩm, quá trình đếm số lượng (Count) khi lọc có thể làm quá tải database.
- Đi đến YITH > Ajax Product Filter > Settings.
- Cân nhắc tắt tính năng Count (Hiển thị số lượng sản phẩm sau mỗi thuộc tính) để giảm khối lượng truy vấn (query) mỗi lần khách hàng bấm lọc.
4. Nâng cấp phiên bản
Đảm bảo rằng plugin YITH WooCommerce Ajax Product Filter và WooCommerce của bạn đã được cập nhật lên phiên bản mới nhất để nhận các bản vá lỗi về hiệu suất và bảo mật.
5. Kiểm tra tài nguyên Database (Nâng cao)
Nếu lỗi liên tục lặp lại trên máy chủ, có thể database của bạn đang bị thiếu chỉ mục (index) gây ra tình trạng khóa toàn bộ bảng (table lock). Hãy nhờ quản trị viên server kiểm tra log MySQL (show engine innodb status) để tìm nguyên nhân gốc rễ và thêm chỉ mục cho các cột thường xuyên được truy vấn.
Good luck!
