对于utf8编码,每个字符最多占用 3 个字节。 因此,VARCHAR(N)的最大长度N可以通过以下公式计算: [ N = \frac{65535 - 2}{3} \approx 21844 ] MyISAM 存储引擎: MyISAM 表的最大行大小也是 65,535 字节。 同样,VARCHAR(N)需要额外的 1-2 个字节来存储长度信息。 因此,VARCHAR(N)的最大长度N也可以...
由于utf8 的每个字符最多占用 3 个字节。而 MySQL 定义行的长度不能超过65535,因此 N 的最大值计算方法为:(65535-1-2)/3。减去 1 的原因是实际存储从第二个字节开始,减去 2 的原因是因为要在列表长度存储实际的字符长度,除以 3 是因为 utf8 限制:每个字符最多占用 3 个字节。