MySQL 数据库中的字段类型 varchar 和 char 的主要区别是什么?哪 种字段的查找效率要高,为什么?

来源:互联网 发布:专业seo 编辑:程序博客网 时间:2024/06/11 03:10

区别一,定长和变长

char 表示定长,长度固定,varchar 表示变长,即长度可变
当所插入的字符串超出它们的长度时,视情况来处理,如果是严格模式,则会拒绝插入
并提示错误信息,如果是宽松模式,则会截取然后插入。如果插入的字符串长度小于定义长
度时,则会以不同的方式来处理,如 char(10),表示存储的是 10 个字符,无论你插入的是
多少,都是 10 个,如果少于 10 个,则用空格填满。而 varchar(10),小于 10 个的话,则
插入多少个字符就存多少个。varchar 怎么知道所存储字符串的长度呢?实际上,对于
varchar 字段来说,需要使用一个(如果字符串长度小于 255)或两个字节(长度大于 255)
来存储字符串的长度。

区别之二,存储的容量不同对 char 来说,最多能存放的字符个数
255,和编码无关。
而 varchar 呢,最多能存放 65532 个字符。

0 0