首页数据库MySQL中varchar和char有何区别,哪个效率高?

MySQL中varchar和char有何区别,哪个效率高?

时间2024-03-24 10:00:03发布访客分类数据库浏览612
导读:MySQL中varchar和char有何区别?varchar和char都是都是用来存储字符串的,但是他们的保存方式有一定的区别,对此本文就给大家来讲讲,对大家了解varchar和char的使用有一定的帮助,感兴趣的朋友就继续往下看吧。区别一...
  • MySQL中varchar和char有何区别?varchar和char都是都是用来存储字符串的,但是他们的保存方式有一定的区别,对此本文就给大家来讲讲,对大家了解varchar和char的使用有一定的帮助,感兴趣的朋友就继续往下看吧。

    区别一,定长和变长

  • char 表示定长,长度固定,varchar表示变长,即长度可变。当所插入的字符串超出它们的长度时,视情况来处理,如果是严格模式,则会拒绝插入并提示错误信息,如果是宽松模式,则会截取然后插入。如果插入的字符串长度小于定义长度时,则会以不同的方式来处理,如char(10),表示存储的是10个字符,无论你插入的是多少,都是10个,如果少于10个,则用空格填满。而varchar(10),小于10个的话,则插入多少个字符就存多少个。

  • varchar怎么知道所存储字符串的长度呢?实际上,对于varchar字段来说,需要使用一个(如果字符串长度小于255)或两个字节(长度大于255)来存储字符串的长度。

  • 区别之二,存储的容量不同

  • 对 char 来说,最多能存放的字符个数 255,和编码无关。

  • 而 varchar 呢,最多能存放 65532 个字符。VARCHAR 的最大有效长度由最大行大小和使用的字符集确定。整体最大长度是 65,532字节

  • 最大有效长度是 65532 字节,在 varchar 存字符串的时候,第一个字节是空的,不存任何的数据,然后还需要两个字节来存放字符串的长度。所以有效长度就是 65535 - 1 - 2= 65532

    由字符集来确定,字符集分单字节和多字节
    Latin1 一个字符占一个字节,最多能存放 65532 个字符
    GBK 一个字符占两个字节, 最多能存 32766 个字符
    UTF8 一个字符占三个字节, 最多能存 21844 个字符
    注意,char 和 varchar 后面的长度表示的是字符的个数,而不是字节数。

    两相比较,char 的效率高,没有碎片,尤其更新比较频繁的时候,方便数据文件指针的操作。但不够灵活,在实际使用时,应根据实际需求来选用合适的数据类型。

    相关题目:若一个表定义为 create table t1(c int, c2 char(30), c3 varchar(N)) charset=utf8; 问N 的最大值又是多少?

    (65535 - 1 - 2 - 4 - 30 * 3 )/3

现在大家对于MySQL中varchar和char的区别应该都清楚了吧,有需要的朋友可以了解看看,希望对大家学习MySQL数据库有帮助,想要了解更多大家可以关注网络其它相关文章。

文本转载自脚本之家

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: MySQL中varchar和char有何区别,哪个效率高?
本文地址: https://pptw.com/jishu/651985.html
C语言字符串操作怎样实现,常见操作有哪些? 重置数组的键名怎么做,php具体用什么方法

游客 回复需填写必要信息