2012-12-19 31 views
6

Tôi đã xem tệp ibdata và nó là 128 GB. Tôi lấy ra kích thước của mỗi bảng và một bảng đã có 5 triệu hồ sơ và nó đã được hiển thị 90 GB.Làm thế nào để xóa tập tin ibdata1 và làm thế nào nó có thể ảnh hưởng đến hiệu suất?

Tôi cắt ngắn bảng đó vì nó không cần thiết và tôi đã xem kích thước ibdata1. Tuy nhiên nó đang hiển thị 128 GB. Sau đó, tôi lấy ra kích thước của mỗi bảng và tổng số sau đó chỉ là 35-38 GB.

Làm cách nào để lấy lại 90 GB dung lượng trên máy chủ Db của tôi. Tôi đang sử dụng mysql với php trên máy chủ Linux mũ đỏ.

Tôi đoán- nếu chúng ta xóa bất cứ điều gì trên DB nó chỉ cần loại bỏ các bản sao nhưng không gian được phân bổ cho nó sẽ không được deallocated cho đến khi chúng tôi làm điều đó bằng tay. Có cách nào không.

+1

Sao chép có thể lặp lại của http://stackoverflow.com/questions/3456159/how-to-shrink-purge-ibdata1-file-in-mysql. Trong một từ: bạn không thể. Dump tất cả các cơ sở dữ liệu, dừng máy chủ, xóa các tập tin ibdata, khởi động lại, reimport dump. – RandomSeed

+1

Lần sau sử dụng tùy chọn ['innodb_file_per_table'] (http://dev.mysql.com/doc/refman/5.5/en/innodb-multiple-tablespaces.html). Thả các bảng lớn sẽ cho phép bạn lấy lại không gian sau đó. – gertvdijk

+0

Rất khuyên bạn nên truy cập vào liên kết @YaK được cung cấp. Chắc chắn một bản sao và bài đăng mà anh/cô ấy đang liên kết có hướng dẫn từng bước. – Tass

Trả lời

5

Khi không gian được tiêu thụ bởi tệp ibdata của bạn, nó sẽ không bao giờ biến mất. Cách duy nhất để 'shink' các tập tin dữ liệu là đổ dbs của bạn, thả tất cả, xóa các tập tin ibdata, khởi động lại mysql và tải lại bãi chứa.

Nếu bạn thường xuyên thả toàn bộ bảng, bạn có thể cấu hình innodb để sử dụng một tệp dữ liệu trên mỗi bảng. Trong trường hợp này, khi bạn thả một bảng, bạn có thể xóa tệp ibdata cụ thể của bảng đó.

+0

nếu tôi xóa tất cả các bảng của tôi và thả DB và xóa ibdatafile, nó sẽ tự động tạo nếu tôi tải lại bãi chứa –

+0

@NaanuManu có, chỉ cần chắc chắn rằng bạn có một bãi chứa đầy đủ. Tất cả dữ liệu innodb sẽ bị mất khi bạn xóa nó. – Ray

Các vấn đề liên quan