IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:Byte

共 1 篇相关文章

IT 累计浏览 2,657

字符与字节

这篇从MySQL的建表语句出发,拆解了一个容易被忽视的底层细节:CHAR和BINARY在存储行为上的根本差异。作者通过一个GBK字符集下的简单表结构,直观展示了CHAR(1)和BINARY(1)虽然在定义时都看似“一个单位”,但实际占用空间和存取逻辑却截然不同。 关键在于,CHAR类型会遵循字符集的编码规则(例如在GBK中,一个字符可能占用1-2个字节),而BINARY则严格按定义的字节数进行存储和截取。当插入一个中文字符时,CHAR(1)能完整存入一个字符,但BINARY(1)只会保留第一个字节,可能导致数据损坏或乱码。这提醒开发者,选择类型时必须清晰区分“字符”与“字节”的概念,尤其是在处理多字节字符集(如中文、Emoji)时。 理解这个差异,能帮助我们在设计表结构、处理字符串比较或编写数据迁移脚本时,避免因隐式转换或截断而引发的隐蔽问题。