mysql联合主键自增、主键最大长度小记

时间:2022-03-12 14:01:59

前言

一. 联合主键自增问题

今天上午闲来无事翻看了下数据库分类表的设计,看到这样一幕:

mysql联合主键自增、主键最大长度小记mysql联合主键自增、主键最大长度小记

当时我好奇的是怎么cateId自增会存在重复值的问题,然后翻看了下主键是由siteId和cateId组成。所以进行了查阅资料:

当多列组成联合主键时、auto_increment属性的列并不是自顾自得一味的增长,而是配合其他主键的列 从而得到唯一约束;如上图2所示  当siteId值不同时cateId会重归1开始自增

but这里有几个坑需要注意下,为了显眼我特地设置为红色:

  1:存储引擎必须为MyISAM

  2:自增主键必须为第二列

下面再总结一个小知识点

英文字母和中文汉字在不同的字符集编码下所占的字节数

英文字母:

字节数 : 1;编码:GB2312

字节数 : 1;编码:GBK

字节数 : 1;编码:GB18030

字节数 : 1;编码:ISO-8859-1

字节数 : 1;编码:UTF-8

字节数 : 4;编码:UTF-16

字节数 : 2;编码:UTF-16BE

字节数 : 2;编码:UTF-16LE

中文汉字:

字节数 : 2;编码:GB2312

字节数 : 2;编码:GBK

字节数 : 2;编码:GB18030

字节数 : 1;编码:ISO-8859-1

字节数 : 3;编码:UTF-8

字节数 : 4;编码:UTF-16

字节数 : 2;编码:UTF-16BE

字节数 : 2;编码:UTF-16LE

1个字节byte=8bit(比特/位)  1bit=0.125B字节

1个汉字两个字节 16bit,2B.

字符:汉字,数字,字母等

Byte,bit是存储单位

Bit——比特
B ——字节 byte
KB——千字节 
MB——兆字节 
GB——吉字节 
TB——太字节

1B=8 Bit
1KB=1024B 
1MB=1024KB 
1GB=1024MB 
1TB=1024GB