MySQL .ibd文件已增长到超过3 TB,而我的RedHat框不再支持添加更多磁盘空间。
问题

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

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

    最佳答案

    如果仅存储数据,则/var/lib/mysql的数据装载应为5TB SATA驱动器。如果您的应用程序写得很重,则/var/lib/mysql的数据装载应该是5TB SAS驱动器RAID10。

    如果无法升级磁盘,则需要通过以下三种方式之一对元素周期表进行碎片整理:

  • ALTER TABLE myinnodbtable ENGINE=InnoDB;
  • OPTIMIZE TABLE myinnodbtable;
  • 定制表
  • 的碎片整理

    您可以手动执行此碎片整理,如下所示:
    CREATE TABLE myinnodbtemptable LIKE myinnodbtable;
    INSERT INTO myinnodbtemptable SELECT * FROM myinnodbtable;
    ALTER TABLE myinnodbtable RENAME myinnodbtableold;
    ALTER TABLE myinnodbtemptable RENAME myinnodbtable;
    DROP TABLE myinnodbtableold;
    

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

    关于mysql数据库.ibd文件大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5489756/

    10-09 02:12