SQL GUID和自增列做主鍵的優缺點

2021-08-08 01:46:27 字數 1032 閱讀 3671

sql guid和自增列做主鍵的優缺點

我們公司的資料庫全部是使用guid做主鍵的,很多人習慣使用int做主鍵。所以呢,這裡總結一下,將兩種資料型別做主鍵進行乙個比較。

使用int做主鍵的優點:

1、需要很小的資料儲存空間,僅僅需要4 byte 。

2、insert和update操作時使用int的效能比guid好,所以使用int將會提高應用程式的效能。

3、index和join 操作,int的效能最好。

4、容易記憶。

5、支援通過函式獲取最新的值,如:scope_indentity() 。

使用int做主鍵的缺點

1、如果經常有合併表的操作,就可能會出現主鍵重複的情況。

2、使用int資料範圍有限制。如果存在大量的資料,可能會超出int的取值範圍。 (

int 4b,儲存-2^31~2^31-1範圍的整數;

2147483647 / 1000 / 365 = 5883.516841095890410958904109589

差不多可以用 2023年,就算10000條記錄,也可以用 500多年)

3、很難處理分布式儲存的資料表。

使用guid做主鍵的優點:

1、它是獨一無二的。

2、出現重複的機會少。

3、適合大量資料中的插入和更新操作。

4、跨伺服器資料合併非常方便。

使用guid做主鍵的缺點:

1、儲存空間大(16 byte),因此它將會占用更多的磁碟大小。

2、很難記憶。join操作效能比int要低。

3、沒有內建的函式獲取最新產生的guid主鍵。

4、guid做主鍵將會新增到表上的所以其他索引中,因此會降低效能。

總結:

上面列出了guid和int兩種資料型別做主鍵優缺點。我覺得,對於大資料量,建議使用guid做主鍵。而使用int會得到最佳的效能。

SQL GUID和自增列做主鍵的優缺點

sql guid和自增列做主鍵的優缺點 我們公司的資料庫全部是使用guid做主鍵的,很多人習慣使用int做主鍵。所以呢,這裡總結一下,將兩種資料型別做主鍵進行乙個比較。使用int做主鍵的優點 1 需要很小的資料儲存空間,僅僅需要4 byte 2 insert和update操作時使用int的效能比gu...

SQL GUID和自增列做主鍵的優缺點

我們公司的資料庫全部是使用guid做主鍵的,很多人習慣使用int做主鍵。所以呢,這裡總結一下,將兩種資料型別做主鍵進行乙個比較。使用int做主鍵的優點 1 需要很小的資料儲存空間,僅僅需要4 byte 2 insert和update操作時使用int的效能比guid好,所以使用int將會提高應用程式的...

Mysql 自增列 主鍵

mysql中假如有 id int auto increment,cid varchar 36 通常情況下都是 id設定為主鍵。假如要設定cid為主鍵。自增列id必需是唯一索引。create table temp id bigint not null auto increment comment 編號...