IMB Asked: 2018-11-12 09:31:22 +0800 CST2018-11-12 09:31:22 +0800 CST 2018-11-12 09:31:22 +0800 CST 从 INT 切换到 BIGINT 是否需要大量停机时间? 772 假设,如果您的 INT 列已经有 40 亿行,那么将该列转换为 BIGINT 的过程需要多长时间?我知道这将取决于服务器资源,但我只想有一个大概的想法,比如服务器有 8GB RAM 4CPU。 如果你确定你会在某个时候达到 INT 的极限,尽管几年之后,直接进入 BIGINT 是否有意义? mysql limits 1 个回答 Voted Best Answer Rick James 2018-11-12T10:54:56+08:002018-11-12T10:54:56+08:00 这取决于表的大小和磁盘的速度。也许一个小时,也许几天。退房pt-online-schema-change;它可能能够避免大部分停机时间。 一个模式多久能完好无损地保存几年以上?当然,计算一下 id 会在多长时间内溢出。即使有很小的风险,也要选择更大的尺寸。 如果您在谈论AUTO_INCREMENT,那么请注意代码可以通过多种方式跳过数字—— INSERT IGNORE、REPLACE等。此外,如果您涉及主-主或集群复制。 如果您已经设置了复制,则可能有一种技术(使用故障转移)可以避免更多的停机时间。
这取决于表的大小和磁盘的速度。也许一个小时,也许几天。退房
pt-online-schema-change
;它可能能够避免大部分停机时间。一个模式多久能完好无损地保存几年以上?当然,计算一下 id 会在多长时间内溢出。即使有很小的风险,也要选择更大的尺寸。
如果您在谈论
AUTO_INCREMENT
,那么请注意代码可以通过多种方式跳过数字——INSERT IGNORE
、REPLACE
等。此外,如果您涉及主-主或集群复制。如果您已经设置了复制,则可能有一种技术(使用故障转移)可以避免更多的停机时间。