Thủ thuật Xenforo

Cách tối ưu và làm giảm 50% dung lượng Database trong Xenforo

Cách tối ưu và làm giảm 50% dung lượng Database trong Xenforo
5/5 - (1 vote)

Để thực hiện di chuyển server của 1 diễn đàn Xenforo với dung lượng từ 1GB trở lên thường phát sinh một số lỗi không mong muốn.

Trường hợp database mình chuyển có 187 bảng với dung lượng hơn 1GB. Và mỗi lần Import đều lỗi, nên mình phải tìm cách làm giảm dung lượng của nó xuống. Nếu bạn cũng gặp vấn đề tương tự như mình kể trên thì hãy làm theo hướng dẫn này.

Lưu ý: Trước khi làm theo hướng dẫn này, hãy đảm bảo bạn đã backup dữ liệu. Sẵn sàng khôi phục lại dữ liệu nếu quá trình làm không đúng như mình hướng dẫn.

Bước 1: Vào trang quản trị Admin chọn Home → Options → Broad Active bỏ nút chọn Broad is Active

Bước 2: Vào phpMyAdmin tìm 2 bảng sau và chọn empty để làm rỗng chúng.

  • xf_ip
  • xf_search

Bởi vì 2 bảng xf_ip và xf_search lưu rất nhiều dữ liệu không cần thiết, đặc biệt là IP. Một số hướng dẫn trên mạng khuyên bạn nên sử dụng các add-on khác về search để bảng này ko cần làm việc và họ đã test là giảm được 50% dung lượng. Bạn có thể sử dụng add-on Elasticsearch for Xenforo.

Bước 3: Chạy 1 số truy vấn sau để xóa hết những bài viết đang ở trạng thái xóa tạm

DELETE FROM `xf_thread` WHERE `discussion_state`='deleted'
DELETE FROM `xf_post` WHERE `message_state`='deleted'

Bước 4: Tối ưu hóa cơ sở dữ liệu bằng tính năng Optiminize trong phpMyAdmin. Cách thực hiện: chọn tất cả database và chọn Optiminize table.

Bước 5: Sử dụng MySQL Sypex Dumper để export database cũ và import vào server mới.

Trên đây là những bước mình làm với 1 database có dung lượng khá lớn khi chạy bằng Xenforo. Ngoài ra nếu bạn chạy Xenforo cho Server cài đặt nginx thì bạn cũng cần config lại vhost. Đây là config của mình cho diễn đàn (chạy trong folder diendan, nếu bạn chạy ở domain chính thì xóa nó đi là được)

location /diendan/ {
	try_files $uri $uri/ /diendan/index.php?$uri&$args;
	index index.php index.html;
}
?
location /diendan/internal_data/ {
	internal;
}
location /diendan/library/ {
       internal;
}

Chúc các bạn thành công!

Post Comment