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.
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
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
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