单元格大小(例如类型)如何影响VARCHAR性能。如果在 VARCHAR(255) 字段中写入“”字Test,那么这个数据会占用 1+4 个字节,而不是 255,这很好(与 CHAR 不同)。如果某些字段的最大值为 varchar(65535) 怎么办?它会以某种方式影响大型数据库的速度吗?出现问题的原因是客户端在通过可视化编辑器插入文本时超出了限制,因此文本被截断。他通常插入最多100个字符的帖子,但这次不同......
单元格大小(例如类型)如何影响VARCHAR性能。如果在 VARCHAR(255) 字段中写入“”字Test,那么这个数据会占用 1+4 个字节,而不是 255,这很好(与 CHAR 不同)。如果某些字段的最大值为 varchar(65535) 怎么办?它会以某种方式影响大型数据库的速度吗?出现问题的原因是客户端在通过可视化编辑器插入文本时超出了限制,因此文本被截断。他通常插入最多100个字符的帖子,但这次不同......
如前所述,具体细节取决于引擎,但这里有一些一般里程碑和一些特定于 InnoDB:
VARCHAR(256+)对于 latin1,VARCHAR(86+)对于 utf8) - size 字段将有 2 个字节而不是 1 个字节。一当接近极限时,其他力量开始发挥作用:
TEXT为创建表时。然后。
VARCHAR(65535)- 原则上,不可能创建,对于大型编码,它实际上是文本,但对于 latin1,它根本行不通,另一方面,在表格剩余字段的合理大小的情况下,比方说,VARCHAR(16384)它不应该以任何方式影响性能,直到您开始将超过 767 字节的值放入其中。该限制VARCHAR比最大值小 1-2 个数量级 - 恕我直言,这是比影响性能/实施的值更多的错误保护。