Tối ưu database trên WordPress

Tối ưu mysql và database có lẽ là 1 trong những thứ khó nhằn nhất, vì nó cần nhiều kinh nghiệm, phần lớn quản trị server ăn tiền ở mảng này, khi xem bài của 2 tác giả mình thích là CentminmodWebinoly họ đều có dịch vụ cấu hình mysql và xử lý database cho các ca khó 😀  còn ở bài này, chúng ta xử lý cơ bản, nhẹ nhàng, ở mức học việc, là dùng plugin =))

Cơ bản thì cũng là xóa các thứ đã xóa mà vẫn còn sót trong database, xóa các log của các plugin, theo năm tháng nó nhiều lên 😛 sau đó thì xử lý 1 tẹo cái autoload của wp_options, tiếp theo là index database

Hai plugin mình dùng cho bài này là Advanced DB Cleaner PROIndex WP MySQL For Speed

Cụ thể trường hợp của mình thì database từ 90Mb xuống còn ~32Mb, autoloaded options size từ hơn 4Mb xuống ~400kb, thời gian chỉ mất 5-10 phút là hoàn thành, mình sẽ nói các ý chính, còn mấy cái lông gà, lông vịt thì sẽ đi lướt

Chú ý là nên backup database trước khi đụng chạm tới bất cứ cái gì trong bài này

Advanced DB Cleaner PRO

Bạn có thể google các bản trên mạng, plugin này khá nổi tiếng nên nhiều trang share lắm, down về xong cài đặt bình thường là được

Tab General

Tối ưu Cho Database Trên Wordpress
Tối ưu Cho Database Trên Wordpress

Tab đầu tiên thì không quan trọng lắm, xóa mấy thứ râu kia cả, không có tác dụng nhiều lắm, nhìn lướt qua là được

Tab Tables

Tối ưu Cho Database Trên Wordpress
Tối ưu Cho Database Trên Wordpress

Ấn Scan tables, sau đó ấn vào để lọc các tables Orphans

Orphans mình google thì đại ý là con không cha 😀 nghĩa là nó nằm trong database thôi, chứ nó chẳng có liên hệ với plugin nào đang có cả, kiểu bạn cài plugin vào, sau đó xóa đi, các tables cũ nó vẫn còn sót lại không xóa

Không chắc 100% là Advanced DB Cleaner PRO check đúng hết được, có khi sẽ nhầm 😀 nhìn sơ 1 lượt cho vui xong delete thẳng tay nếu đã backup database 😛

Tối ưu Cho Database Trên Wordpress
Tối ưu Cho Database Trên Wordpress

Tiếp theo ấn vào lọc All, search theo size dung lượng lớn nhất, nhìn 5-10 table đầu tiên là đủ, thường mấy thèng gây nặng nhất ở đây

Cụ thể như trường hợp của mình là cái plugin Bloom, mình dùng từ 2018 tới năm nay là gần 5 năm, không sờ vào, dù trang bé tí, nó vẫn phình lên tới ~41Mb

Ấn vào Bulk actions, chọn Empty rows đi

Ngó sơ thêm top 10 còn thèng nào nặng mà không quan trọng, kiểu log thì xóa đi cho nhẹ, bạn cũng có thể thấy wp_yoast_indexable và 1 lố các thứ liên quan, xưa mình có dùng Yoast, mà sau chán không dùng, nó vẫn còn sót lại trong database

Tối ưu Cho Database Trên Wordpress
Tối ưu Cho Database Trên Wordpress

Có thể search wp_yoast để cho ra nhiều bảng có tên đó rồi chọn, trường hợp biết chắc chắn plugin này không còn cài, thì cứ thẳng tay delete, không cần Empty rows

Tối ưu Cho Database Trên Wordpress
Tối ưu Cho Database Trên Wordpress

Lúc này các table không quan trọng, nặng nhất cũng chỉ còn vài trăm kb, có thể bỏ qua, không cần nhắm nhúi chỉnh sửa thêm bớt vài trăm kb database làm gì

Tab options

Tối ưu Cho Database Trên Wordpress
Tối ưu Cho Database Trên Wordpress

Ấn Scan, sau đó ấn vào lọc các Orphans, mạnh tay xóa, nếu đã backup database 😀

Tối ưu Cho Database Trên Wordpress
Tối ưu Cho Database Trên Wordpress

Tiếp theo ấn vào lọc All, search theo size dung lượng lớn nhất, nhìn 5-10 dòng đầu tiên là đủ, thấy các thứ bình thường cả thì có thể cho qua, không cần kiểm tra quá kĩ tới từng bảng, từng cột làm gì

Tối ưu Cho Database Trên Wordpress
Tối ưu Cho Database Trên Wordpress

Tiếp theo ấn vào lọc wp_options, phần search chọn YES, Size lọc theo dung lượng

Đây là phần autoload-options-size mà nếu dùng Query Monitor bạn sẽ hay thấy

Autoloaded hiểu đơn giản là tự động tải, nghĩa là bất kể bạn vào trang nào, nếu Autoload set yes trong database nó sẽ tự load, lý thuyết nếu người viết plugin, theme mà code tốt, thì chúng ta chẳng cần nhìn tới phần này làm gì, có điều đa phần tay nào cũng code vô tội vạ, cứ nhét autoload yes để hiện cho nhanh, dù thực tế nó không cần phải hiện ra ở mọi trang

Xử lý lúc này thì thường có 2 cách

Tối ưu Cho Database Trên Wordpress
Tối ưu Cho Database Trên Wordpress

Trường hợp 1, ví dụ ở đây là et_bloom_stats_cache và swift_performance_options, mình thấy nó không quan trọng, nên xóa luôn

Trường hợp 2, có thể là jetpack_active_plan, mình thấy nó không cần thiết cho việc cứ phải autoload ở mọi trang, nhưng không chắc 100% data ở đây có quan trọng không, xóa thì cũng rủi ro, nên mình sẽ set autoload về NO, để nó không tự động load ở mọi trang nữa

Nếu trang bạn data nhiều, plugin nhiều, thì có thể đi kĩ hơn ở top 10 😀 thèng bibica.net thì mình chỉ làm tới thế thôi 😛

Trong trường hợp cuồng hiệu năng hơn, bạn có thể copy tên của nó lên google, search xem nó có tác dụng gì, hoặc đưa chuột vào giá trị Value, xem nó có gì ở trong để quyết định 😀

+-----------------------+---------+----------------------------------------------------------------+
| name                  | status  | message                                                        |
+-----------------------+---------+----------------------------------------------------------------+
| autoload-options-size | success | Autoloaded options size (351.24kb) is less than threshold (900 |
|                       |         | kb).                                                           |
+-----------------------+---------+----------------------------------------------------------------+

Mình làm tới đây thì autoload-options-size đã về con số tổng khoảng 350kb, cũng khá ổn rồi

Như mình nói từ đầu, chúng ta tối ưu database kiểu văn nghệ sĩ 😛 cái quan trọng xử lý được là nó ổn rồi (xóa các table Orphans thừa, data rác ), đừng quá tham hiệu năng, cuồng thông số để mà ngồi xử lý on/off từng hàng, từng cột 5-10kb, xui xui off nhầm hiệu năng lại đi xuống, xử lý còn mệt người hơn

Tối ưu Cho Database Trên Wordpress
Tối ưu Cho Database Trên Wordpress

Lúc này bạn có thể ấn vào lọc All, sau đó optimized 1 phát là con như cơ bản ổn thỏa rồi

Các tùy chọn Cron jobs để tự optimized hay xóa các file rác thì cá nhân mình thấy không cần thiết, lâu lâu rảnh rảnh thì vào xóa 1 cái là được, chứ các dữ liệu được liệt vào dạng rác, không ai truy xuất vào được để mà thấy chậm 😛

Index WP MySQL For Speed

Tối ưu Cho Database Trên Wordpress
Tối ưu Cho Database Trên Wordpress

Index WP MySQL For Speed thì nó có tác dụng tự động lập chỉ mục, nhưng ngoài khóa chính, họ còn bổ xung thêm 1 khóa phụ, theo như tác giả quảng cáo thì nó giúp tìm kiếm dữ liệu nhanh hơn, tốt hơn so với mặc định của WordPress … ở những trang lớn, người nhiều thì tác dụng của việc lập chỉ mục có tác dụng rõ rệt hơn

Mình ban đầu do thấy plugin này nhiều người dùng, cài vào thử thấy đơn giản, dùng ít hôm thấy đúng là có hiệu quả xíu xíu thật 😀

Bạn nào đọc tới dòng này, chắc cũng không thấy sự khác biệt gì trên thèng bibica.net, tại đa phần mọi người đọc là trang tĩnh được load lại rồi, không còn đi qua database nữa 😀

Autoloaded options size từ hơn 4Mb ban đầu xuống < 400kb, nghĩa là server đã giảm tải được khá nhiều ở mỗi lượt truy xuất vào database, dung lượng database từ 90 Mb xuống < 35Mb

Lý thuyết thì mọi thứ đều có cải thiện 😛 thực tế thì không đáng kể, phần vì các plugin mình dùng đều phải nhẹ, không nhẹ thì mình không dùng, nên hiệu quả tối ưu từ database rất thấp, cụ thể thì tới gần 5 năm mình mới phải đi xóa lại các data rác, index database …. thì rõ ràng là không cần thiết lắm ở các trang nhỏ, ít tìm kiếm hay ít tương tác comment, trang nào nhiều bài viết, tương tác mạnh mới thấy rõ sự quan trọng của cấu hình mysql và tối ưu database 

Về sử dụng, thường sau khi xóa bớt các thứ rác, index lại xong, chạy vài ngày thấy ổn định thì mình cũng xóa luôn Advanced DB Cleaner PRO, Index WP MySQL For Speed, vì không cần thiết để nó hằng ngày làm gì

Leave a Comment