| 方案 | 主鍵定義 | 插入語句 |
|---|---|---|
| 一:單一自增 | a INT AUTO_INCREMENT PRIMARY KEY | INSERT ... VALUES('aaa...') |
| 二:觸發器轉 16 序列 | a INT AUTO_INCREMENT PRIMARY KEY + BEFORE INSERT 觸發器重算 new.a | 同方案一 |
| 三:UUID | a VARCHAR(64) PRIMARY KEY | INSERT ... VALUES(UUID(), 'aaa...') |
每方案 20 執行緒並發插入,字串欄位固定 200 字元 'a'。
| 方案 | 插入速度 (行/秒) | 佔用空間 (MB) |
|---|---|---|
| 一:單一自增 | 3,965 | 245 |
| 二:16 序列 | 3,777 | 245 |
| 三:UUID | 2,580 | 571 |
innodb_autoinc_lock_mode=2 等機制大幅緩解。觸發器修改 new.a 後,LAST_INSERT_ID() 回傳的是修改前的自增值。應用層需自行按觸發器邏輯反推真實主鍵值。
BIGINT AUTO_INCREMENT。UUID(可有序化如 COMB/ULID)或 AUTO_INCREMENT + 節點偏移,但需接受空間/效能代價。