2023 rồi! ĐỪNG DÙNG MySQL trên website WordPress nữa!
Xin chào, Lại là Tuệ đây!
Hôm nay em xin chia sẻ quan điểm của mình về vấn đề chọn MariaDB hay MySQL trên góc nhìn người thật việc thật. Thông qua thí nghiệm trực tiếp trên Website muadogiadung.vn của em làm với DATA thuộc hàng khủng bố.
-
> 15.000 sản phẩm. Bảng wp_posts 69.000 dòng, Bảng wp_postmeta 533.704 dòng dữ liệu.
-
> 3.000.000 Comment đánh giá sản phẩm. Bảng bz_comments 2.715.031 Rows, Bảng wp_commentmeta 8.329.210 Rows
- Tự động lấy sản phẩm của đối tác, đối thủ,
- Tự động viết lại văn bằng AI giữ nguyên thông số sản phẩm.
- Tự động tạo 90 -> 160 đánh giá tự nhiên không trùng lặp từ 3 -> 5 sao / mỗi sản phẩm -> Tổng 3 triệu đánh giá trên web.
Nhược điểm lớn nhất của WordPress
WordPress ban đầu sinh ra để dành cho Blog! Nhược điểm lớn nhất của WordPress chính là hệ thống Query DB cực kỳ cồng kềnh. Nếu để làm blog thôi thì không sao! k khác biệt.
Nhưng các đơn vị khác, điển hình là WooCommerce gắn cho nó cái chức năng bán hàng. Gắn 1 đống meta field vào 2 bảng _postmeta và wp_commentmeta. Query join hết bảng này đến bảng kia mới ra được data cần lấy.
Chỉ cần vào trang WP-ADMIN -> Sản phẩm -> Đánh giá là nó sẽ gọi 1 cái Query đếm tổng số Comment đang có. Và riêng nó mất 5s trời ạ!!!!! Tổng nhiều query khác mất 16s như trên thanh task bar!
Query tào lao khi vào trang wp-admin -> Thảo luận. mất 32s
Nhược điểm lớn nhất của MySQL
Tiếp đó, Nhược điểm lớn nhất của MySQL so với MariaDB là từ phiên bản 8.0, MySQL đã bỏ tính năng Query Cache! Chức năng lưu tạm các Query thường xuyên sử dụng.
Họ giải thích rằng “Bộ nhớ đệm mang lại lợi ích lớn nhất khi nó được di chuyển đến gần máy khách hơn”. Ví dụ Cache Redis hoặc cache tầng HTML.
(https://dev.mysql.com/blog-archive/mysql-8-0-retiring-support-for-the-query-cache/)
Nhưng họ đã sai đối với mã nguồn WordPress (hoặc MySQL không ưu tiên WordPress)! Trang WordPress bị chậm nhất là ở trong wp-admin! Trong này lại không có cache HTML. Mọi Query đều đục thẳng vào Database -> Full CPU Liên tục. Bạn có thể khắc phục đỡ bằng cách dùng Redis Cache. Redis lưu dạng Dữ liệu kiểu Object đã qua xào nấu như string, interger. DB Cache thì lưu dữ liệu dạng thuần Query Binary. Cả 2 đều tốn RAM để cache tăng hiệu suất.
NHƯNG! Query Cache có thể tuỳ biến được sâu hơn! VD: Có thể set chỉ cache các Query nặng hơn bao nhiêu kb đó thì mới lưu vào cache. -> Tinh chỉnh để hệ thống sử dụng ít ram hơn -> Giảm thiểu vấn đề tràn ram stop Service trên VPS nhỏ dùng Redis hoặc Memcached.
KẾT HỢP 2 nhược điểm này lại đúng là thảm hoạ mà!!!
Tốc độ được cải thiện sau khi sử dụng Query Cache của MariaDB
Query đếm số comment trên web chỉ còn 0.00001s. Truy cập trang wp-admin -> Sản phẩm -> Đánh giá chỉ mất 1.8s
Query tào lao khi vào trang wp-admin -> Thảo luận mất chỉ còn 0.00001s. Tốc độ trang chỉ còn 1.66s
Cảm ơn anh chị đã đọc đến đây. Anh chị thấy bài viết thế nào? Đã đủ thuyết phục để anh chị chuyển sang MariaDB chưa?
Nếu thấy hay đừng ngại Like Share để Group phát triển và hỗ trợ nhiều người hơn ạ <3
Bài viết được liên kết với bài đăng trên Group Hỗ trợ WordPress Việt Nam.
Mời các anh chị cùng tham gia thảo luận tại đây.
————————————————————————————
Tuệ ND from Group Hỗ trợ WordPress Việt Nam with LOVE!!! <3