Khi sử dụng WordPress trong thời gian dài, cơ sở dữ liệu của website có thể dần phình to, chứa nhiều dữ liệu không cần thiết xen lẫn với dữ liệu quan trọng hoặc không còn sử dụng. Việc database càng lớn sẽ khiến các truy vấn hoạt động chậm hơn do phải tìm kiếm qua một lượng dữ liệu lớn, bao gồm cả những dữ liệu không còn giá trị.
Các loại dữ liệu không cần thiết này bao gồm bản nháp tự động, phiên bản chỉnh sửa cũ, cookies, và dữ liệu từ các plugin/theme không còn sử dụng. Phần lớn những dữ liệu này có thể xóa đi mà không ảnh hưởng đến hoạt động của website.
Trong bài viết này, mình sẽ hướng dẫn chi tiết từng bước từ cơ bản đến nâng cao để dọn dẹp cơ sở dữ liệu, giúp website của bạn trở nên gọn gàng và nhẹ hơn. Lưu ý, hãy luôn sao lưu cơ sở dữ liệu trước khi thực hiện bất kỳ thao tác nào.
1. Dọn dẹp database bằng plugin
Trước khi tiến hành các thao tác thủ công, mình muốn giới thiệu cách dọn dẹp database qua plugin, vì nó an toàn và dễ thực hiện hơn.
WordPress cung cấp rất nhiều plugin miễn phí giúp bạn xóa sạch dữ liệu rác chỉ với một cú click. Tiêu biểu là plugin WP Database Cleaner, cho phép bạn dọn dẹp các dữ liệu không cần thiết, bao gồm cả những tags không có bài viết.
Nếu có ngân sách, mình khuyên bạn nên sử dụng plugin Smart Cleanup Tools mà mình đang dùng cho Thachpham.com. Plugin này vô cùng hiệu quả, hỗ trợ tự động dọn dẹp database định kỳ.
2. Dọn dẹp database bằng lệnh SQL
Mặc dù hơi phức tạp, nhưng lệnh SQL mang lại hiệu quả rất cao. Chỉ cần có kiến thức cơ bản về SQL, bạn có thể dễ dàng áp dụng trong nhiều tình huống. Ở đây, mình sẽ hướng dẫn cách xóa các cookies không cần thiết trong bảng wp_options, vì chúng có thể chiếm vài MB trong database nếu blog hoạt động lâu.
Trước tiên, hãy truy cập PhpMyAdmin, chọn database cần dọn dẹp ở cột trái, sau đó nhấn nút SQL ở phía trên để bắt đầu thực thi lệnh.
Sau đó copy đoạn này vào bên trong khung chạy lệnh rồi ấn nút Go, nếu bạn dùng prefix database khác với wp_ thì sửa lại nhé. Nó có hỏi thì thì cứ Ok.
DELETE FROM `wp_options` WHERE `option_name` LIKE ‘%_transient_%’
Và bây giờ bạn sẽ nhận được thông báo màu xanh hiển thị số dòng mà nó đã xóa đi, ít hay nhiều tùy theo độ lớn database của bạn.\
3. Xóa các table của plugin không còn sử dụng
Một số plugin khi được cài đặt sẽ thêm các table vào database, và khi bạn gỡ plugin, chúng thường không tự động xóa những table này, gây ra sự lộn xộn trong cơ sở dữ liệu.
Vì vậy, thỉnh thoảng bạn nên kiểm tra xem có table nào trong database không còn sử dụng nữa không. Nếu phát hiện table không cần thiết, bạn chỉ cần chọn nó và thực hiện lệnh "Drop" để xóa đi.
Hãy thận trọng khi xóa các table và đảm bảo bạn hiểu rõ những gì mình đang làm. Đừng quên sao lưu database trước khi thực hiện bất kỳ thao tác nào.
4. Tìm và xóa các giá trị không sử dụng trong database
Nếu bạn đã sử dụng WordPress trong thời gian dài và cài đặt nhiều plugin và theme khác nhau, rất có thể database của bạn chứa nhiều giá trị không còn sử dụng, chẳng hạn như các cột post meta hoặc các thiết lập tùy chọn tự động sinh ra từ plugin và theme.
Khi truy cập vào database, bạn nên chú ý đến table wp_postmeta trước tiên, vì nó chứa dữ liệu vĩ mô liên quan đến các bài viết, như các thiết lập từ plugin khi đăng bài. Hãy chọn table này để xem các giá trị bên trong.
Hãy chú ý đến phần meta_key, đây là tên của các khóa trong custom field. Bạn cần kiểm tra xem có khóa nào thuộc các plugin mà bạn nghĩ không còn sử dụng nữa, ngoại trừ những khóa của WordPress (thường bắt đầu bằng _wp). Ví dụ, mình phát hiện một số khóa như essb_hidefb, essb_off và cho rằng chúng không còn cần thiết. Việc tiếp theo là tìm tất cả các khóa có tên tương tự để xem số lượng của chúng.
Mình sẽ chọn tab "Search" ở phía trên. Trong trường meta_key, mình nhập một phần tên của khóa cần tìm và chọn kiểu Operator là "LIKE %...%" để tìm kiếm các tên tương tự. Cuối cùng, mình ấn nút "Go" để bắt đầu tìm kiếm.
Và bây giờ nó sẽ liệt kê ra toàn bộ danh sách các khóa theo tên mà bạn tìm, bạn sẽ biết được nó có bao nhiêu dữ liệu như vậy.
Nếu bạn cảm thấy cần xóa toàn bộ các dữ liệu này thì hãy copy cái dòng Query ở trên.
Và chuyển qua tab SQL kế bên rồi paste vào, thay chữ SELECT * thành DELETE rồi ấn Go.
Sau khi thực hiện, hệ thống sẽ thông báo có bao nhiêu dữ liệu liên quan đến khóa này đã được xóa.
Bạn có thể áp dụng cách tương tự cho các table khác. Lưu ý, khi làm với table nào thì hãy chọn đúng table đó và làm theo phương pháp trong bước 4.
5. Lời kết
Trên đây là một vài cách để dọn dẹp dữ liệu thừa trong database. Sau khi hoàn thành, bạn sẽ thấy rõ sự khác biệt về dung lượng database của trang web.
Một database nhẹ hơn không chỉ giúp việc sao lưu và di chuyển dễ dàng hơn mà còn giúp website xử lý nhanh hơn. Hy vọng những mẹo nhỏ này sẽ hữu ích trong việc tối ưu hóa cơ sở dữ liệu của bạn.