我有一个MySQL-Server 5.5,每个表中有大约5.000.000条记录。生产中的MySQL变量innodb_file_per_table激活
现在我想激活变量“innodb_file_per_table = 1”。
这可能吗? 有没有这样做的风险?
原因是激活选项,是为了优化性能。
感谢和问候 克里斯
我有一个MySQL-Server 5.5,每个表中有大约5.000.000条记录。生产中的MySQL变量innodb_file_per_table激活
现在我想激活变量“innodb_file_per_table = 1”。
这可能吗? 有没有这样做的风险?
原因是激活选项,是为了优化性能。
感谢和问候 克里斯
这是可能的。官方docs 中提到了所有优点和可能的缺点。另外,您应该知道只有在新表格中创建新表格,或者您可以重建现有表格以从共享表格区域移动。
innodb_file_per_table
是一个动态变量 - 更改它可以安全地完成,甚至不需要重新启动服务器......但需要注意的是,您永远无法回收ibdata
文件占用的磁盘空间。
使用启用设置重建的表将具有其自己的表空间文件,但ibdata1
不能在没有转储的情况下收缩,然后删除ibdata1
并重新初始化服务器,然后重新加载所有数据。
“性能”不一定是更改工作服务器上设置的有效理由。
手段? ibdata文件将仍然具有相同的大小? – hugi86
正确。 https://dev.mysql.com/doc/refman/5.6/en/innodb-resize-system-tablespace.html –
可能没有性能增益。 –