Điểm:1

Xóa hàng triệu Đoạn không sử dụng và dữ liệu của chúng?

lá cờ in

Chúng tôi có một trang web mà sau một vài năm đã xây dựng được 10 triệu bản ghi trong bảngparagraphs_item. Đây là kết quả của rất nhiều lần di chuyển dữ liệu (có liên quan đến các đoạn văn) và hiện có rất nhiều trẻ mồ côi (có thể là 90% trong số đó).

Bản sửa đổi tham chiếu thực thể hiện có lệnh Drush để 'thanh lọc' các thực thể mồ côi. Điều này có vẻ hiệu quả - nhưng với nhiều thứ này để xem qua, có vẻ như sẽ mất rất nhiều thời gian để xem hết chúng. Cần lưu ý rằng chúng không phải mồ côi do thực thể máy chủ bị xóa. Do cách dữ liệu được di chuyển vào, các đoạn được xây dựng lại và thay thế do định nghĩa di chuyển. Chúng tôi không thể thay đổi điều này ngay bây giờ, cho đến khi có một số loại băm trên tập hợp con dữ liệu để cho biết liệu chúng tôi nên nhập hay bỏ qua.

Tôi nghi ngờ rằng điều này đang khiến truy vấn trên các biểu mẫu chỉnh sửa khi chỉnh sửa Đoạn trở nên chậm hơn theo thời gian, dẫn đến việc truy vấn đó không thể thực thi (MariaDB ngừng phản hồi). Mặc dù tất cả các trường đều được lập chỉ mục cho mỗi lược đồ Đoạn văn, nhưng hiệu quả đang giảm dần.

Ví dụ: nếu tôi thanh lọc và để nó xóa 200.000 mục - chạy một OPTIMIZE sql trên bảngparagraphs_item dường như hỗ trợ lý thuyết này. Lần chỉnh sửa đầu tiên mất 8 giây để tải một đoạn văn, sau đó gần như ngay lập tức. Vì vậy, xóa tất cả các đoạn không sử dụng là điều tôi nghĩ chúng ta nên làm. Tôi nhận thấy rằng TỐI ƯU HÓA trên InnoDB dẫn đến việc xây dựng lại chỉ mục, nhưng trong trường hợp bạn nâng cấp các phiên bản của cơ sở dữ liệu thì dữ liệu này quá lớn nên tôi nghĩ rằng nó không thể xây dựng lại ở một ngưỡng nhất định.

Có cách nào nhanh hơn để truy vấn và xóa các đoạn mồ côi ngoài thanh lọc không?

4uk4 avatar
lá cờ cn
Biết các chi tiết cụ thể của trang web, bạn có thể viết dịch vụ thanh lọc tùy chỉnh nhanh hơn, loại bỏ hoặc đơn giản hóa việc kiểm tra mức sử dụng, sau đó tăng kích thước lô. Giá trị mặc định là 50 là quá thấp trong trường hợp của bạn. Và trong tương lai, hãy thêm dịch vụ thanh lọc làm nhân viên xếp hàng sau khi di chuyển.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.