MySQL不建議用UUID做innodb主鍵的幾條原因
1).UUID雖然能夠保證ID的唯一性,但是無法滿足業務系統需要的很多其他特性,例如:時間粗略有序性、可反解和可製造性;
2).UUID產生時使用完全的時間資料,效能比較差;
3).UUID比較長,會佔用空間大,間接導致資料庫效能下降;
4).UUID並不具有有序性,會導致B+樹索引在寫的時候有過多的隨機寫操作(連續的ID會產生部分順序寫);
5).在寫的時候不能產生有序的append操作,而需要進行insert操作,將讀取整個B+樹節點到記憶體,在插入這條記錄後會將整個節點寫回磁碟,這種操作在記錄佔用空間比較大的情況下,效能會明顯下降。
6).UUID目前不是順序增長,做為主鍵寫入導致,隨機IO嚴重。
2).UUID產生時使用完全的時間資料,效能比較差;
3).UUID比較長,會佔用空間大,間接導致資料庫效能下降;
4).UUID並不具有有序性,會導致B+樹索引在寫的時候有過多的隨機寫操作(連續的ID會產生部分順序寫);
5).在寫的時候不能產生有序的append操作,而需要進行insert操作,將讀取整個B+樹節點到記憶體,在插入這條記錄後會將整個節點寫回磁碟,這種操作在記錄佔用空間比較大的情況下,效能會明顯下降。
6).UUID目前不是順序增長,做為主鍵寫入導致,隨機IO嚴重。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2157024/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySql資料庫最佳化的幾條核心建議MySql資料庫
- MySQL 缺少主鍵的表的效能下降的原因MySql
- 不建議使用免費代理的主要原因
- PostgreSQL中如何高效使用UUID主鍵?SQLUI
- 關於加強MYSQL安全的幾點建議MySql
- [20191225]主鍵使用uuid優缺點.txtUI
- mysql innodb 主鍵INT、BIGINT、VARCHAR併發插入效能對比MySql
- 給計算機專業學生的幾條建議計算機
- MySQL的UUIDMySqlUI
- mysql建表必須使用主鍵嗎MySql
- PostgreSQL中UUID v7作為主鍵SQLUI
- 不建議企業自行開發CRM的幾個理由
- 跳槽的幾點建議
- 不建議開發來做資料庫選型資料庫
- 資料表設計之主鍵自增、UUID或聯合主鍵UI
- MySQL:Innodb 關於Handler_commit每次DML增加2的原因MySqlMIT
- MySQL異常恢復之無主鍵情況下innodb資料恢復的方法MySql資料恢復
- 避開NullPointerException的10條建議NullException
- 用 Docker 構建 MySQL 主從環境DockerMySql
- 適合用於資料庫主鍵的最佳UUID工具庫 - Vlad Mihalcea資料庫UI
- Laravel指東:使用模型建立 uuid 主鍵資料的兩種方式Laravel模型UI
- XtraBackup不停機不鎖表做MySQL主從複製的試驗MySql
- 自學 JAVA 的幾點建議Java
- MySQL 中的自增主鍵MySql
- WGCLOUD連不上是MySQL的原因整理GCCloudMySql
- 不建議小老闆轉型做短視訊和直播
- 詳解 Go 團隊不建議用的 unsafe.PointerGo
- 程式碼簡潔的十條建議
- 提升 JumpServer 安全的10條建議 | IDCFServer
- Mysql修改server uuidMySqlServerUI
- 為什麼不建議在 MySQL 中使用 UTF-8?MySql
- MySQL 配置InnoDB主執行緒I/O速率MySql執行緒
- UITableView效能優化的幾點建議UIView優化
- MyBatis的Insert操作自增主鍵的實現,Mysql協議與JDBC實現MyBatisMySql協議JDBC
- MySQL新增自增主鍵的坑MySql
- Linux中uuid是什麼?UUID由幾部分組成?LinuxUI
- 程式設計幾點建議程式設計
- 為什麼不建議給MySQL設定Null值?《死磕MySQL系列 十八》MySqlNull