MySQL Error number: 4158; Symbol: ER_INNODB_INSTANT_ADD_NOT_SUPPORTED_MAX_FIELDS; SQLSTATE: HY000

文档解释

Error number: 4158; Symbol: ER_INNODB_INSTANT_ADD_NOT_SUPPORTED_MAX_FIELDS; SQLSTATE: HY000

Message: Column can’t be added to ‘%s’ with ALGORITHM=INSTANT anymore. Please try ALGORITHM=INPLACE/COPY.

错误说明

MySQL错误代码4158 是 ER_INNODB_INSTANT_ADD_NOT_SUPPORTED_MAX_FIELDS 的SQLSTATE,它表示尝试在使用InnoDB时向表添加超过2500个列,失败。此错误代表InnoDB存储引擎来说有一个上 线,它在解析掉逻辑架构更改时可以执行因此离线指令。

常见案例

此错误通常会发生在尝试在单个表中添加超过2500个列时。此上限仅适用于 InnoDB 存储引擎,因为它可以更快地检索和存储更大量的数据。MySQL的其他存储引擎没有这样的限制,但它也运行的慢 ∙。

解决方法

建议使用最新的MySQL版本来避免这个错误。此外,删除多余的列也可以使 MySQ 不需要达到一定数目的列时避免这个错误。对于要使用大量列时,可以将表拆分成具有较少列的多个表或模式,并以此来避免这个错误。 MySQ 建议将在联合模式下的关联表的列的总数保持在 2000 以下.此外,也可以使用其他存储引擎,如MyIsam,支持更多的 column。

你可能感兴趣的