
回复
1.实验场景
GreatSQL 8.0.25 InnoDB
2.实验测试
2.1 区别
2.2 建测试表
2.3 未超出设定值测试
字段V、C都写入一个4+空格的字符
测试结果,char的长度维持不变,占了2个字符,varchar空格长度变了,占了一个字符。
2.4 超出设定值测试
当写入长度大于设定长度时候,出现报错
调整sql_mode,再写入的时候,自动截取限制容量内的内容
2.5 字段长度测试
创建表,设置CHAR长度为256, 结果提示错误
3.使用建议
● 频繁改动的字段类型建议使用varchar。
● 基本不会变动的字段类型建议使用char类型,这样可以节省一些存储空间。
● 如果需要创建索引那么也建议使用char类型,因为char类型能有效避免因字段变化而产生的索引碎片,提高索引性能。
更多细节请参阅官网:
https://dev.mysql.com/doc/refman/8.0/en/char.html
Enjoy GreatSQL :)
文章转载自公众号:GreatSQL社区