Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tệp dữ liệu MySQL sẽ không bị thu nhỏ

Kích thước tệp của không gian bảng InnoDB sẽ không bao giờ tự động giảm, bất kể bạn xóa bao nhiêu dữ liệu.

Điều bạn có thể làm, mặc dù tốn rất nhiều công sức, là tạo một vùng bảng cho mỗi bảng bằng cách đặt

innodb_file_per_table

Phần dài của vấn đề này là bạn cần xuất TẤT CẢ DỮ LIỆU từ máy chủ mysql (thiết lập một máy chủ mới sẽ dễ dàng hơn) và sau đó nhập lại dữ liệu. Thay vì một tệp ibdata1 duy nhất chứa dữ liệu cho mỗi và mọi bảng, bạn sẽ tìm thấy rất nhiều tệp có tên tablename.ibd chỉ lưu giữ dữ liệu cho một bảng duy nhất.

Sau đó:

Sau đó, khi bạn xóa nhiều dữ liệu khỏi các bảng, bạn có thể cho phép mysql tạo lại tệp dữ liệu bằng cách phát hành

alter table <tablename> engine=myisam;

để chuyển sang MyIsam (và xóa tệp dữ liệu InnoDB cho bảng này) và sau đó

alter table <tablename> engine=innodb;

để tạo lại bảng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách thực thi mã PHP định kỳ theo cách tự động

  2. MySQL 8 tính toán trung bình theo phân vùng theo ngày

  3. lỗi chỉ mục không xác định từ một arrya php

  4. Cách nhanh nhất và hiệu quả nhất để tìm nạp bản ghi từ MySQL từ xa đến iPhone

  5. Quay lại sao chép truyền thống từ GTID