在项目中,我们需要经常使用ALTER表来删除或添加列。我想知道这是否会削弱数据库的长期性能。如果它具有相当大的负面影响,那么如何保持数据库的健康和高效呢?
我在考虑以下几种方法:
数据库是带有InnoDB的mysql(5.5)。
发布于 2013-09-17 03:39:30
这是您提出的一种直观的、明智的关切,因为频繁的DDL操作可能会留下一点混乱,这似乎是合理的,但我的经验是,这种担心在InnoDB中是没有根据的。
在MySQL 5.6之前,绝大多数ALTER TABLE操作实际上使用新结构重新构建整个表,复制所有数据,然后在新表中交换,然后删除旧表.因此,我认为频繁变化对未来产生负面影响的可能性微乎其微。
不过,如果您多次插入和删除测试数据,以清理浪费的磁盘空间和重建索引,那么最好还是建议OPTIMIZE TABLE,但是除非您的测试数据与生产数据在大小上具有可比性,否则随着表对实时数据的处理,即使这样的数据也会消失。
https://dba.stackexchange.com/questions/50009
复制相似问题