技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> MySQL --> InnoDB主键设计

InnoDB主键设计

浏览:2298次  出处信息
众所周知,InnoDB是clustered-index table,因此对于InnoDB而言,主键具有特殊意义。可以通过主键直接定位到对应的某一数据行记录的物理位置,主键索引指向对应行记录,其他索引则都指向主键索引;因此,可以这么说,InnoDB其实就是一个 B-树索引,这棵B-树的索引就是主键,它的值则是对应的行记录。
在InnoDB数据表设计中,我们需要注意几点:
  • 1. 显式的定义一个 INT 类型自增字段的主键,这个字段可以仅用于做主键,不做其他用途
  • 2. 如果不显式定义主键的话,可能会导致InnoDB每次都需要对新数据行进行排序,严重损害性能
  • 3. 尽量保证不对主键字段进行更新修改,防止主键字段发生变化,引发数据存储碎片,降低IO性能
  • 4. 如果需要对主键字段进行更新,请将该字段转变成一个唯一索引约束字段,另外创建一个没有其他业务意义的自增字段做主键
  • 5. 主键字段类型尽可能小,能用SMALLINT就不用INT,能用INT就不用BIGINT
  • 6. 主键字段放在数据表的第一顺序

建议继续学习:

  1. Innodb IO优化-配置优化    (阅读:6654)
  2. Innodb分表太多或者表分区太多,会导致内存耗尽而宕机    (阅读:6148)
  3. Innodb 表和索引结构    (阅读:4793)
  4. Innodb如何使用内存    (阅读:4019)
  5. InnoDB线程并发检查机制    (阅读:4115)
  6. 快速预热Innodb Buffer Pool的方法    (阅读:3980)
  7. InnoDB的缓存替换策略及其效果    (阅读:3656)
  8. 多版本并发控制:PostgreSQL vs InnoDB    (阅读:3647)
  9. Innodb文件表空间结构    (阅读:3734)
  10. InnoDB之Dirty Page、Redo log    (阅读:3438)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1