x86 Win 7 Pro x86上的MySQL 5.7.23。 NTFS。
当表空间超过4G时遇到错误1114“表已满”。我尝试为“ file_per_table”设置创建同时具有0和1的数据库。
这个线程How many rows can mysql store?建议我一直保持良好状态,直到2T。
可以将表转换为MyISAM,但是希望保留Innodb随附的日志记录和恢复。
在Win 7 Pro x64上运行的x64 MySQL(也用于NTFS)。
在创建表中MAX_ROWS = 10000000000。我意识到这是仅MyISAM的参数,对于InnoDb应该被忽略。其他地方是否有特定于Innodb的设置?还是这是一个错误?
答案 0 :(得分:0)
编辑:请勿使用32位操作系统或32位MySQL。仅使用64位。
https://dev.mysql.com/doc/mysql-installation-excerpt/5.7/en/windows-installation.html说:
如果您需要大于4GB的表,请在NTFS或更高版本的文件系统上安装MySQL。
您的表最大容量为4GB,这可能是一个巧合,这就是FAT32文件系统的最大文件大小。
我建议您仔细检查存储数据的文件系统是NTFS。请注意,它不一定是C:驱动器。在MySQL客户端中运行以下SQL查询:
SELECT @@datadir, @@innodb_data_file_path;
datadir是大多数MySQL数据文件和日志文件的默认位置。
如果innodb_data_file_path
仅命名数据文件,则它将相对于datadir。但是innodb_data_file_path
也可以命名文件的完整路径名,并且可以在不位于数据目录下的另一个位置。
innodb_data_file_path
还可以选择为全局表空间设置最大大小,例如,如果值是这样的:
ibdata1:12M:autoextend:max:4GB
有关更多信息,请参见https://dev.mysql.com/doc/refman/5.7/en/innodb-init-startup-configuration.html。
此外,单个表可以命名数据目录之外的位置,但是如果您这样做,您可能会知道,因为创建表时它需要显式选项。
CREATE TABLE `tablename` ( ... ) DATA DIRECTORY = '/alternative/directory';
有关更多信息,请参见https://dev.mysql.com/doc/refman/5.7/en/tablespace-placing.html。