我有一个MySQL表,动态插入行.因为我不能确定字符串的长度并且不希望它们被切断,所以我将它们变成varchar(200),这通常比我需要的大得多.给varchar字段的长度是否超过必要的长度?
我有一个contacts包含字段,如表postcode,first name,last name,town,country,phone number等等,所有这些都被定义为VARCHAR(255)即使没有这些领域都不会接近有255个字符.(如果你想知道,就是这样,因为Ruby on Rails迁移VARCHAR(255)默认情况下将字符串字段映射到我并且我从不打扰覆盖它).
由于VARCHAR只会领域的实际字符的数目存储(连同字段长度),是否有任何明显的优势(性能或其他方式)使用,比方说,VARCHAR(16)在VARCHAR(255)?
此外,大多数这些字段都有索引.字段上的较大VARCHAR大小是否会影响索引的大小或性能?
仅供我使用MySQL 5.
MySQL如何存储varchar字段?我可以假设以下模式表示合理的存储大小:
1,2,4,8,16,32,64,128,255(最大)
通过示例澄清.假设我有一个20个字符的varchar字段.MySQL在创建这个字段时,基本上保留了32个字节的空间(不确定它们是否为字节)但只允许输入20个字节?
我想我担心为大型表优化磁盘空间.
可能重复:
MySQL表中varchar长度的重要性
使用VARCHAR时(假设这是短字符串的正确数据类型)大小是否重要?如果我将它设置为20个字符,是否会占用更少的空间或快于255个字符?