[MySQL优化案例]系列 -- InnoDB主键选择
2010/08/02/sth_about_innodb_primary_key_select.html
众所周知,InnoDB是clustered-index table,因此对于InnoDB而言,主键具有特殊意义。可以通过主键直接定位到对应的某一数据行记录的物理位置,主键索引指向对应行记录,其他索引则都指向主键索引;因此,可以这么说,InnoDB其实就是一个 B-树索引,这棵B-树的索引就是主键,它的值则是对应的行记录。
在InnoDB数据表设计中,我们需要注意几点:
评论
恩.只做主键,不更新的
恩.只做主键,不更新的好.
所以也不要经常用optimize table来消除innodb 主键的数据存储碎片,因为整理后,split page速率会起初更高,降低性能.
有道理,上次我们还
有道理,上次我们还讨论到底是使用auto_increment id还是用逻辑上的主键,后来考虑到传值、连接、以及表的逻辑结果发生变化时这个字段不需要发生变化,就用了自增id。今天你说的这个又增加了一条理由,采用自增id可以减少insert的时间,因为主键是clustered index,调整数据调整的比较多。
自增最大的问题就是
自增最大的问题就是分表分库。 数据整合。 如果增加序列分发器 带来的消耗也很高。 数据存储碎片也难以消除。 主键设计是个折中的取舍。