开发者

MySQL数据表中,用户id这样的自增字段,应该是数字型还是字符型?各有什么优缺点? 财富值72?

开发者 https://www.devze.com 2022-12-12 15:31 出处:网络 作者:如何学运维
360U3200925660 2022-09-01 20:53 开发者_如何学C效率。ty_129922194 开发者_StackOverflow社区 2022-09-01 21:04
360U3200925660 2022-09-01 20:53

开发者_如何学C

效率。


ty_129922194 开发者_StackOverflow社区 2022-09-01 21:04

MySQL的AUTO_INCREMENT不支持字符型。占用空间不用多说, INT类型固定只占用4个字节,能表示的范围达到了-2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) ,设为非负之后翻倍,而使用字符串想要表示这么大量的数据...


红树林235 2022-09-01 21:08

id一般来说不会是负数,开发者_开发问答所以用UNSIGNEDid相当于身份证,不应该也不能是NULL。 至于为什么是整数,和两个因素有关:


deng1742 2022-09-01 21:08

开发者_如何学C

占用空间。


皇甫轩坐看云海把昨日还给我前世 2022-09-01 21:13

效率则和索引的结构有关,MySQL使用B+树作为索引的数据结构,如果使用自增整数的话,插入数据时最多只会引起节点的分裂,而使开发者_如何转开发用字符串则有可能会插入到任何地方,这意味着可能会引起节点的移动和分裂。其次是在数据查询的时候,字符串的比较也要比整数的比较慢。


jsbeje64 2022-09-01 21:14

开发者_JS百科

用自增的整数。


0

精彩评论

暂无评论...
验证码 换一张
取 消