mysql 数据库 .ibd 文件大小

use*_*070 5 mysql performance storage

MySQL.ibd文件已增长到 3 TB 以上,我的 RedHat 机器无法再支持添加更多磁盘空间。

问题

  • 如何扩展数据库存储?
  • 哪些最佳实践可以解决此问题?

注意:我.ibd每张表使用一个文件,并有几个大表。

Rol*_*DBA 5

如果你只是存储数据,你的数据挂载/var/lib/mysql应该是 5TB SATA 驱动器。如果您的应用程序写入繁重,您的数据装载/var/lib/mysql应该是 5TB SAS 驱动器 RAID10。

如果升级磁盘是不可能的,您需要通过以下三 (3) 种方式之一进行元素周期表碎片整理:

  1. ALTER TABLE myinnodbtable ENGINE=InnoDB;
  2. OPTIMIZE TABLE myinnodbtable;
  3. 自定义表的碎片整理

您可以手动执行此碎片整理,如下所示:

CREATE TABLE myinnodbtemptable LIKE myinnodbtable;
INSERT INTO myinnodbtemptable SELECT * FROM myinnodbtable;
ALTER TABLE myinnodbtable RENAME myinnodbtableold;
ALTER TABLE myinnodbtemptable RENAME myinnodbtable;
DROP TABLE myinnodbtableold;
Run Code Online (Sandbox Code Playgroud)

如果 InnoDB 表有约束,则选项 3 不起作用,因为约束将消失。