我一直在倾听MYSQL文档,试图确定我的脚本或MYSQL本身是否导致大表的截断。我看到的基本行为:
任何人都可以确认,如果达到表限制,MySQL是否会自动截断表格,还是设置为检查以关闭此类行为?
答案 0 :(得分:1)
没有MySQL没有对表的大小设置硬限制,但有一些限制......
显式表格大小
您可以使用
ALTER TABLE tbl_name MAX_ROWS=200000
您可以使用
查看表格大小的当前设置SHOW TABLE STATUS FROM db_name LIKE 'tbl_name';
请参阅:http://dev.mysql.com/doc/refman/5.0/en/full-table.html
请注意MAX_ROWS
是:
您计划在表格中存储的最大行数。这不是硬限制,而是存储引擎的提示,表必须能够存储至少这么多行。
文件系统限制
MySQL 5.x的默认表格大小为256TB,但如果你的文件系统不允许文件> 4GB,这可能是一个可能导致此行为的限制。
内存限制
如果您使用memory
(堆)引擎,则表大小由max_heap_table_size
系统变量确定。
答案 1 :(得分:0)
我认为MySQL不会截断您的数据,我使用的是50,000行或更多行的表,我根本没有问题。所以,我认为你最好注意你的PHP脚本或至少PHP配置,PHP可以处理的脚本的所有超时设置和大小。
我希望这可以帮到你。