【发布时间】:2009-10-01 16:26:12
【问题描述】:
我们有一个数据库在一个表中达到了 4GB 的限制(我相信这是我们在 ~ Linux 上拥有它的服务器的文件大小限制)。它是一个 MySql MyISAM 数据库。
我想知道此时我们的选择是什么,例如,有没有办法压缩表格,或以某种方式增加文件大小,或任何其他想法?在这一点上,我正在尝试确定我的最佳行动方案。
谢谢-
【问题讨论】:
-
你能提供一个表结构吗?
我们有一个数据库在一个表中达到了 4GB 的限制(我相信这是我们在 ~ Linux 上拥有它的服务器的文件大小限制)。它是一个 MySql MyISAM 数据库。
我想知道此时我们的选择是什么,例如,有没有办法压缩表格,或以某种方式增加文件大小,或任何其他想法?在这一点上,我正在尝试确定我的最佳行动方案。
谢谢-
【问题讨论】:
你有几个选择:
1) 切换到 ARCHIVE 表。它们只是 INSERT。你可以添加行,但你永远不能更新,你永远不能删除,只能插入和选择。并且它们被压缩了。
2) 切换到 innodb 表,但首先检查您的 inno 配置。见http://dev.mysql.com/doc/refman/5.1/en/adding-and-removing.html
3) 如果您使用的是 mysql 5.1,请实施分区。
还可以从 mysql 手册中查看此页面:http://dev.mysql.com/doc/refman/5.1/en/full-table.html
【讨论】:
这是我解决问题的方法(以防其他人遇到同样的问题)。
我发出了以下命令(注意:表名是“模块”):
ALTER TABLE module MAX_ROWS=1000000000 AVG_ROW_LENGTH=50
这似乎已经解决了这个问题。就性能而言,到目前为止,它似乎还不错(索引很好),但是,我想只有时间才能证明这是一个长期的解决方案,还是一个短期的解决方案。
谢谢。
【讨论】: