mysql varchar2和char_Varchar2和char之间的主要区别是什么

因为char只是一个空白填充到最大长度的VARCHAR2 - 即下面的列X和Y之间的差异:

create table t(x varchar2(30),y char(30)); 插入t(x,y)值(rpad('a','',30),'a');

绝对没有,并且考虑到以下列X和Y之间的差异:

插入t(x,y)值('a','a')

是X消耗3个字节(空指示符,前导字节长度,'a'为1个字节),Y消耗32个字节(空指示符,前导字节长度,'a'为30个字节)

嗯,varchar2将在某种程度上“在性能方面具有优势”。它帮助我们不是所有char(30)总是30个字节 - 对我们来说,它只是一个空白填充到最大长度的varchar2。它帮助我们处理 - ZERO,zilch,zippo。

任何时候你看到有人说“它的速度提高了50%”,就是这样 - 没有例子,没有科学,没有事实,没有任何故事要支持它 - 只要大声笑出来并继续前进。

该页面上还有其他“组成的东西”,例如:“在CHAR中搜索速度更快,因为所有字符串都存储在 彼此指定的位置,系统不必 搜索字符串的结尾。而在VARCHAR中系统必须 首先找到字符串的结尾然后去搜索“。

FALSE:char只是一个varchar2空白填充 - 我们不会将字符串“存储在彼此指定的位置”。我们搜索字符串的结尾 - 我们使用前导字节长度来解决问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值