日韩欧乱色一区二区三区在线_久久―日本道色综合久久_欧美日本一区二区_网曝91综合精品门事件在线

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > MySQL中id通常使用什么數(shù)據(jù)類型呢?

MySQL中id通常使用什么數(shù)據(jù)類型呢?

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-10-13 02:22:33 1697134953

一、MySQL中id通常使用什么數(shù)據(jù)類型

一般都是 int 自增設(shè)置為主鍵

如果表大的話可以設(shè)置為 龍, 或者big int

例如:

‘id’int unsigned not null auto_increment primary key,

1.SQL PRIMARY KEY 約束

PRIMARY KEY 約束少數(shù)標(biāo)識數(shù)據(jù)庫表中的每條記錄。

主鍵必須包含少數(shù)的值。

主鍵列不能包含 NULL 值。

每個表都應(yīng)該有一個主鍵,并且每個表只能有一個主鍵。

2.AUTO_INCREMENT 字段

我們通常希望在每次插入新記錄時,自動地創(chuàng)建主鍵字段的值。

我們可以在表中創(chuàng)建一個 auto_increment 字段。

3.unsigned 無符號整型

mysql數(shù)據(jù)庫中unsigned數(shù)的操作結(jié)果都是unsigned的,select num1 – num2 from table;如果sql_mode不嚴(yán)格此時的結(jié)果可能是不確定的。sql_mode如果為嚴(yán)格模式則此種操作會報越界的異常,解決此問題只需要將參數(shù)sql_mode進行如下設(shè)置即可:

mysql> set sql_mode=’NO_UNSIGNED_SUBTRACTION’。

延伸閱讀:

二、id的一些典型的類型

整型:整型通常來說是優(yōu)異的選擇,這是因為整型的運算和比較都很快,而且還可以設(shè)置 AUTO_INCREMENT 屬性自動遞增。ENUM 和 SET:通常不會選擇枚舉和集合作為 id,然后對于那些包含有“類型”、“狀態(tài)”、“性別”這類型的列來說是挺合適的。例如我們需要有一張表存儲下拉菜單時,通常會有一個值和一個名稱,這個時候值使用枚舉作為主鍵也是可以的。字符串:盡可能地避免使用字符串作為 id,一是字符串占據(jù)的空間更大,二是通常會比整型慢。選用字符串作為 id 時,還需要特別注意 MD5、SHA1和 UUID 這些函數(shù)。每個值是在很大范圍的隨機值,沒有次序,這會導(dǎo)致插入和查詢更慢:插入的時候,由于建立索引是隨機位置(會導(dǎo)致分頁、隨機磁盤訪問和聚集索引碎片),會降低插入速度。查詢的時候,相鄰的數(shù)據(jù)行在磁盤或內(nèi)存上上可能跨度很大,也會導(dǎo)致速度更慢。

如果確實要使用 UUID 值,應(yīng)當(dāng)移除掉“-”字符,或者是使用 UNHEX 函數(shù)將其轉(zhuǎn)換為16字節(jié)數(shù)字,并使用 BINARY(16)存儲。然后可以使用 HEX 函數(shù)以十六進制的方式進行獲取。UUID 產(chǎn)生的方法有很多,有些是隨機分布的,有些是有序的,但是即便是有序的性能也不如整型。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
什么情況下需要使用分布式數(shù)據(jù)庫?

一、需要使用分布式數(shù)據(jù)庫的情況1、大規(guī)模數(shù)據(jù)存儲和處理當(dāng)數(shù)據(jù)量非常大時,單個數(shù)據(jù)庫可能無法滿足存儲和處理的需求。分布式數(shù)據(jù)庫可以將數(shù)據(jù)...詳情>>

2023-10-13 04:09:56
人大金倉數(shù)據(jù)庫是完全基于自研,是基于pc或是別的什么?

一、人大金倉數(shù)據(jù)庫北京人大金倉數(shù)據(jù)庫管理系統(tǒng)KingbaseES基于自主研究,它是北京人大金倉信息技術(shù)股份有限公司經(jīng)過多年努力,開發(fā)的具有自主知...詳情>>

2023-10-13 03:51:35
在Nodejs中使用MySQL數(shù)據(jù)庫的優(yōu)異實踐是什么?

一、在Nodejs中使用MySQL數(shù)據(jù)庫的優(yōu)異實踐1. 請一直使用pool,沒有何時。2. pool在程序初始化的時候創(chuàng)建,無需銷毀,從中抽取實例連接就行,無...詳情>>

2023-10-13 03:26:40
InnoDB的意向鎖有什么作用?

一、InnoDB的意向鎖的作用1、鎖沖突優(yōu)化意向鎖提供了一種機制,讓事務(wù)可以事先聲明它將在某個級別對數(shù)據(jù)行進行鎖定。這樣其他事務(wù)可以更快速地...詳情>>

2023-10-13 03:08:17
文件系統(tǒng)和數(shù)據(jù)庫是由于什么原因才選擇B樹或B+樹建立?

一、文件系統(tǒng)和數(shù)據(jù)庫是由于什么原因才選擇B樹或B+樹建立索引的索引的目標(biāo)是要找到數(shù)據(jù)所在的物理位置,因此用樹去實現(xiàn)搜索數(shù)據(jù)所在物理位置,...詳情>>

2023-10-13 03:03:02
快速通道
主站蜘蛛池模板: 拉萨市| 翁源县| 宝丰县| 京山县| 宜黄县| 铅山县| 德兴市| 广昌县| 葫芦岛市| 邳州市| 广西| 洪江市| 安仁县| 靖州| 雷波县| 南岸区| 遂昌县| 昌乐县| 仪陇县| 金昌市| 顺义区| 岳西县| 岗巴县| 鲜城| 阳江市| 江津市| 土默特右旗| 曲沃县| 宜君县| 古交市| 托里县| 鲁山县| 资兴市| 乌兰县| 寿光市| 资源县| 阳东县| 璧山县| 盖州市| 深水埗区| 元谋县|