Mysql整型id和uuid區別

2021-09-22 12:21:24 字數 345 閱讀 7765

日常開發中,有人經常使用uuid去作為資料庫的主鍵。這樣和常規的整型主鍵有什麼區分呢?看資料說話:

總結:使用uuid會造成索引的儲存空間劇增,以及儲存時間的加長。

導致的原因:一方面是由於主鍵字段過長,二是由於頁**和碎片導致的。在innodb中,會根據主鍵去做聚簇索引,把索引和對應的資料行儲存的在葉子頁上,使用uuid寫入是無序的,innodb為了資料的寫入,只能不斷頻繁的進行頁**操作,以便為新的行分配空間。 由於頻繁的頁**,會導致頁變得稀疏被不規則的填充,所以最終導致產生了大量的資料碎片。

mysql設定主鍵id為uuid

建立乙個user表,主鍵字段 這裡示例用userid 的屬性不要設定自增 開啟表結構 新增觸發器 如圖,1 觸發器視窗 2 選擇before insert 3 此觸發器的名稱,可自定義 4 插入 觸發器的邏輯 觸發器的邏輯 說明 userid是主鍵名稱,根據自己情況來 set new.userid ...

MySQL建立表時設定主鍵id為uuid

oracel建立uuid為主鍵的表時可以直接指定default uuid 但是mysql不支援,可以通過觸發器實現。下面是建立乙個產品表的sql語句。建表語句 create table product id varchar 36 not null productnum varchar 50 not ...

ios instancetype和id的區別

inte ce nsobject id alloc id init end inte ce nsarray nsobject end當我們使用如下方式初始化nsarray時 nsarray array nsarray alloc init 按照cocoa的命名規則,語句 nsarray alloc ...