資料庫面試題 十四 主鍵使用自增ID還是UUID

2021-10-21 01:40:17 字數 321 閱讀 2229

推薦使用自增id,不要使用uuid。

因為在innodb儲存引擎中,主鍵索引是作為聚簇索引存在的,也就是說,主鍵索引的b+樹葉子節點上儲存了主鍵索引以及全部的資料(按照順序),如果主鍵索引是自增id,那麼只需要不斷向後排列即可,如果是uuid,由於到來的id與原來的大小不確定,會造成非常多的資料插入,資料移動,然後導致產生很多的記憶體碎片,進而造成插入效能的下降。

總之,在資料量大一些的情況下,用自增主鍵效能會好一些。

關於主鍵是聚簇索引,如果沒有主鍵,innodb會選擇乙個唯一鍵來作為聚簇索引,如果沒有唯一鍵,會生成乙個隱式的主鍵。

Oracle資料庫主鍵自增

在學習mysql時,我們很容易通過auto increment就能實現主鍵自增的功能,但是在oracle資料庫中,是沒有這個關鍵字的,所以也不能通過這樣來實現主鍵自增。下面我就為大家介紹兩種實現主鍵自增的方法。兩種方法的基礎都有乙個概念就是序列 sequence 的概念,一種是利用序列和顯式呼叫的方...

資料庫主鍵自增策略

資料庫主鍵自增策略 1.自增長主鍵策略 優點 簡單,不需要程式做特別處理 缺點 這種方法對以後如果專案移植到其他資料庫改動會比較大,而且如果多表合併,就會出現重複的主鍵 2.使用時間戳 隨機數 優點 時間簡單,與資料庫無關,移植性較好 缺點 長度太長,最少也得20位,不進占空間並且建索引的話效能會比...

erlang資料庫Mnesia主鍵自增

erlang資料庫mnesia主鍵自增 2012 09 24 22 32 07 分類 python ruby 對於mnesia資料庫表有時候需要有乙個id欄位,就像關聯式資料庫的主鍵.最簡單的辦法是用uuid做id,但是我們希望此id是整數遞增的.或者用 做id也是不錯的辦法.類似於乙個set集合 ...