Tác động hiệu suất dự kiến ​​khi thả một bảng lớn là gì


7

Tôi có một bảng innodb 100G + cần được loại bỏ trong môi trường sản xuất. Tôi đang cố gắng làm điều này mà không bị gián đoạn dịch vụ.

Bảng không còn được ghi vào và cần được bỏ để giải phóng không gian. Phiên bản MySQL của tôi là 5.1.52.

Tác động dự kiến ​​đến hiệu suất trong khi bảng này đang bị loại bỏ là gì? Tôi đã nghĩ đến việc từ từ thu nhỏ nó bằng cách xóa các hàng và sau đó tối ưu hóa. Tuy nhiên, tối ưu hóa tạo một bản sao của bảng để nó sẽ giống như đĩa IO chuyên sâu, nếu không muốn nói là nhiều hơn.


1. Vũ trụ dự phòng. 2. Thả bàn và xem điều gì xảy ra. 3. Lưu thông tin kết quả quan trọng vào kho lưu trữ liên phổ. 4. Khôi phục để sao lưu 5. Kiểm tra kho lưu trữ dữ liệu. Đừng quên thực hiện bước 5 sau bước 1 trong trường hợp bạn đã khôi phục!
ErikE

Câu trả lời:


2

Xóa theo đợt và sau đó tối ưu hóa thực sự là điều tồi tệ nhất bạn có thể làm. Mỗi lần xóa sẽ được thực hiện như một giao dịch và mỗi lần tối ưu hóa sẽ thu lại hiệu quả những gì còn lại của bảng khổng lồ.

Hãy nghĩ về nó như thế này. Bạn có bảng 5 gig, xóa 0,5 hợp đồng biểu diễn, tối ưu hóa (sao chép tệp 4,5 gig), xóa 0,5 hợp đồng (sao chép tệp 4.0 gig), v.v.

Và thực sự chi phí liên kết với mỗi tối ưu hóa không chỉ đơn thuần là sao chép nhiều dữ liệu đó trên một hệ thống tệp vì nó tương đương với việc chèn tất cả các hàng đó vào một bảng mới và tất cả chi phí giao dịch đi kèm với nó.

Đánh rơi một cái bàn là cách hiệu quả nhất để làm điều đó

Chỉnh sửa: Đây là một số điểm chuẩn kỹ lưỡng mặc dù

http://www.mysqlperformanceblog.com/2011/04/20/drop-table-performance/


Điều đó nói rằng, bất kỳ ý tưởng làm thế nào MySQL sẽ xử lý xử lý các truy vấn khác trong quá trình thả? Tôi có nên mong đợi các vấn đề với việc xử lý kết nối hay chỉ là hiệu năng tổng thể chậm hơn do IO tệp tăng?
trả lời
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.