2010-10-04 40 views
12

Như thông điệp đầu tiên của tôi ở đây, tôi không biết tôi có phải trả lời hoặc đăng một tin nhắn mới hay không. Tôi gặp vấn đề tương tự như here và câu trả lời duy nhất và được đưa ra không giúp tôi (trừ khi tài liệu không chính xác). "Bạn có thể làm cho OPTIMIZE TABLE hoạt động trên các công cụ lưu trữ khác", nhưng động cơ của tôi là InnoDB. Tôi cảm ơn sự giúp đỡ của bạn. S.Không thể tối ưu hóa bảng innoDB

+0

thể trùng lặp của [Tối ưu hóa bảng InnoDB] (http://stackoverflow.com/questions/2816044/optimize-innodb-table) – Bobby

+2

Đừng làm cho tôi sai, nhưng có tất cả mọi thứ giải thích rõ ràng ở câu hỏi khác. InnoDB không hỗ trợ trực tiếp 'OPTIMIZE', phải thực hiện' ALTER TABLE' thay vì xây dựng lại các chỉ mục. Vì vậy, có, nó hoạt động, nó chỉ không cho bạn biết điều đó. – Bobby

Trả lời

28

OPTIMIZE TABLE hoạt động tốt trên các bảng InnoDB. Thông báo cho biết "Bảng không hỗ trợ tối ưu hóa, thực hiện tái tạo + phân tích thay thế" hoàn toàn là thông tin. Bạn có thể bỏ qua thông báo đó một cách an toàn.

+2

Có. Tài liệu giờ đây tuyên bố rõ ràng đó là một thông báo dự kiến: http://dev.mysql.com/doc/refman/5.5/en/optimize-table.html –

2

Bạn không thể bỏ qua kết quả ... điều đó có nghĩa là thực hiện thao tác VERY chuyên sâu thay vì ánh sáng ... một bảng rất lớn (> 100G) có thể là giờ thay vì phút.

-3

sử dụng này

ALTER TABLE table ENGINE='InnoDB';