久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

MySQL數據表中,用戶id這樣的自增字段,應該是數字型還是字符型?各有什么優缺點?

瀏覽:136日期:2022-06-17 13:11:54

問題描述

如題,設計一張表,id這種自增字段該怎么選擇類型?

問題解答

回答1:

用自增的整數。

id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT

id一般來說不會是負數,所以用UNSIGNED。 id相當于身份證,不應該也不能是NULL。 至于為什么是整數,和兩個因素有關:

占用空間。

效率。

MySQL的AUTO_INCREMENT不支持字符型。占用空間不用多說, INT類型固定只占用4個字節,能表示的范圍達到了-2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) ,設為非負之后翻倍,而使用字符串想要表示這么大量的數據...

效率則和索引的結構有關,MySQL使用B+樹作為索引的數據結構,如果使用自增整數的話,插入數據時最多只會引起節點的分裂,而使用字符串則有可能會插入到任何地方,這意味著可能會引起節點的移動和分裂。其次是在數據查詢的時候,字符串的比較也要比整數的比較慢。

更多信息可以參考這個: 自增主鍵是否會降低數據庫insert性能?如果會的話為什么還有很多公司采用?

最后: 我支持主鍵與具體數據無關= =.. 所以用整數最為主鍵是比較不錯的選擇。

回答2:

數字型方便索引

主站蜘蛛池模板: 崇文区| 宁波市| 西峡县| 皋兰县| 灵台县| 醴陵市| 公主岭市| 沂南县| 师宗县| 化德县| 嘉兴市| 新乡县| 鹤岗市| 施秉县| 五寨县| 桑日县| 弥勒县| 弥渡县| 繁昌县| 元阳县| 紫云| 蒙城县| 石阡县| 离岛区| 玉山县| 沁阳市| 黔江区| 专栏| 兴城市| 临江市| 康保县| 新民市| 潜山县| 绍兴县| 天台县| 隆化县| 丘北县| 大足县| 阳谷县| 安仁县| 龙海市|