💡
原文英文,约2300词,阅读约需9分钟。
📝
内容提要
最近发现一个警告信息,表中添加字段后行大小超过允许的最大大小。警告出现在表对象加载到表定义缓存中时,当缓存过小无法容纳所有用户表时会偶尔出现。删除列以符合限制时,MySQL执行命令没有投诉但记录错误。尝试重新添加有问题的列时会触发两个警告。错误消息有时出乎意料,不要盲目相信,而是尝试找到核心问题。
🎯
关键要点
- 最近发现一个警告信息,表中添加字段后行大小超过允许的最大大小。
- 警告出现在表对象加载到表定义缓存中时,偶尔出现。
- 删除列以符合限制时,MySQL执行命令没有投诉但记录错误。
- 尝试重新添加有问题的列时会触发两个警告。
- 错误消息有时出乎意料,不要盲目相信,而是尝试找到核心问题。
- 创建表时违反最大行大小限制会导致错误。
- 使用旧的COMPACT行格式时,最大行大小限制较低。
- innodb_strict_mode开启时,防止创建违反限制的表。
- 表定义缓存过小会导致加载时出现警告。
- 在表定义不在缓存中时,访问表会触发警告。
- 删除列后,MySQL执行命令没有警告,但仍记录错误。
- 重新添加列时会触发两个警告,一个是临时表的警告。
- 错误消息可能会误导,需深入分析问题。
➡️