mysql varchar 字符串长度设定
一、确定varchar长度设定对文件存储大小的影响
mysql 8.17版本中,经过本人测定。varchar2(M)的存储大小,近似于(实际存储字符数)*1个字符的字节数(根据编码确定,utf=3, utf8mb4=4)。跟M的大小无关。M只是限定长度,但跟能不能建立索引也有关。
二、可建立索引的varchar长度
mysql>alter table test4 add column f varchar(768);
mysql>create index idx_test4_f on test4(f);
结果:
create index idx_test4_f on test4(f)
mysql 8.17版本中,经过本人测定。varchar2(M)的存储大小,近似于(实际存储字符数)*1个字符的字节数(根据编码确定,utf=3, utf8mb4=4)。跟M的大小无关。M只是限定长度,但跟能不能建立索引也有关。
二、可建立索引的varchar长度
mysql>alter table test4 add column f varchar(768);
mysql>create index idx_test4_f on test4(f);
结果:
create index idx_test4_f on test4(f)
OK
时间: 0.011s
mysql>alter table test4 add column g varchar(769);
mysql>create index idx_test4_g on test4(g);
create index idx_test4_g on test4(g)
1071 - Specified key was too long; max key length is 3072 bytes
时间: 0.003s
原因:
因为字符串的字符集采用了utf8mb4,一个字符占4个字节,3072/4=768.
结论:
所以,字符串长度最好限制在768之内。
相关推荐
Dullonjiang 2020-07-30
sofast 2020-07-08
AngelicaA 2020-07-04
Iamready 2020-06-25
TMD咯MySQL 2020-06-16
窃破天道 2020-06-12
tanyhuan 2020-06-09
debugjoker 2020-06-07
nan00zzu 2020-06-07
BiPerler 2020-06-03
勇往直前 2020-06-01
huangyx 2020-05-29
阿亮 2020-05-28
Justagreenonion 2020-05-14
sunnyJam 2020-04-03
数据库之扑朔迷离 2020-04-26
gamestart0 2020-04-10
李轮清 2020-05-11
imacoder 2020-05-10