mysql建表必須使用主鍵嗎
mysql從5.5版本開始預設使用innodb引擎,innodb表是聚簇索引表,也就是說資料通過主鍵聚集( 主鍵下儲存該行的資料,索引指向主鍵值)
正是由於這種解構,如果後續對主鍵對應的值進行修改,就會導致索引節點的頻繁分裂,效能會下降非常厲害。因此推薦開發的同事們使用和業務沒有任何關聯的自增id來做主鍵(切記不要使用uuid來做主鍵),此外也可以考慮使用其他的方式來生產自增的ID,比如使用Twitter的snowflake演算法或者zk的DistributedAtomicLong來間接實現。使用自增主鍵而不是uuid做主鍵的優點主要有如下幾點:
a、佔用的資料量更小
b、資料順序遞增,不會導致索引節點的頻繁分裂
c、數字型別比字元型別效率更高
正確招式:使用自增id作為主鍵
相關文章
- MySQL 分割槽表,為什麼分割槽鍵必須是主鍵的一部分?MySql
- MySQL 聚簇索引一定是主鍵嗎MySql索引
- python必須安裝pip嗎Python
- 向Mysql主鍵自增長表中新增資料並返回主鍵MySql
- 必須懂的mysql知識MySql
- MySQL 缺少主鍵的表的效能下降的原因MySql
- MySQL 預設排序真的是按主鍵來排序的嗎MySql排序
- 測試流程必須嚴格執行嗎?
- 客戶管理必須要用CRM系統嗎?
- KUDU 能超越 300列限制嗎 ? 必須能
- Flashback database必須要有之前的archivelog嗎?DatabaseHive
- Mysql系列第三講 管理員必備技能(必須掌握)MySql
- MySQL不建議用UUID做innodb主鍵的幾條原因MySqlUI
- 面試前必須知道的MySQL命令【explain】面試MySqlAI
- C中int main()必須reture一個值嗎AI
- [JAVA] CLASSPATH環境變數必須要配置嗎Java變數
- 【必知必會的MySQL知識】②使用MySQLMySql
- 程式設計師必須瞭解的知識點——你搞懂mysql索引機制了嗎?程式設計師MySql索引
- MySQL 主鍵自增也有坑?MySql
- MySQL 中的自增主鍵MySql
- 測試工程師必須要會寫程式碼嗎?工程師
- 必須先建立資料夾再建立檔案嗎
- 必須掌握的Linux使用者組Linux
- 三種常用的內建函式--必須牢記函式
- 主鍵索引存的是行嗎?❌索引
- Mysql關於自增主鍵,自增主鍵優化總結MySql優化
- C語言初學者必須掌握的關鍵字!C語言
- 對於MySQL你必須要了解的鎖知識MySql
- MySQL建庫建表索引規範MySql索引
- 什麼是字串?Python中字串必須加引號嗎?字串Python
- 移動端網站必須要用html5做嗎?網站HTML
- MySQL新增自增主鍵的坑MySql
- MySQL 主鍵自增 Auto Increment用法MySqlREM
- mysql-刪除和新增主鍵MySql
- 為什麼必須使用三次握手?
- 核心必須懂(六): 使用kgdb除錯核心除錯
- 揪出那個無主鍵的表
- SQL server根據表名查詢表主鍵SQLServer