首页 > 数据库技术 > 详细

MySQL - 为什么InnoDB表必须有主键?并且推荐使用整型的自增主键?

时间:2021-09-24 10:41:21      阅读:61      评论:0      收藏:0      [点我收藏+]

为什么InnoDB表必须有主键?

Mysql索引设计如此....mysql设计的就是innoDB把你的数据主键索引用B+Tree来组织的,没有主键他的数据就没有一个结构来存储。即:主键索引就是数据文件本身!

 

技术分享图片

 

 

 

为什么推荐主键是整形呢?

MySQL查找过程,就是把节点load到内存然后在内存里不断的去进行数据的比对。假设UUID,既不自增也不是整形。问一下,是整形的1<2比较的效率高还是字符串的“abc”和“abe”比较的效率高呢?显然是前者,因为字符串的比较是转换成ASICI一位一位的比,如果最后一位不一样,比到最后才比较出大小,就比整形比较慢多了,存储空间来说,整形更小。索引越节约资源越好。

 

为什么推荐主键是自增的呢?

  • 更方便遍历:如果主键是自增的,那么当遍历数据,从当前节点开始,就可以根据节点间的指针快速找到下一个节点去遍历。
  • 更快速的做数据插入操作:在叶子节点上做插入时,主键保持自增的话,就可以直接在上一个主键后方添加即可。避免主键取值不规律而导致的频繁移动。

MySQL - 为什么InnoDB表必须有主键?并且推荐使用整型的自增主键?

原文:https://www.cnblogs.com/frankcui/p/15312181.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!