auto_increment是自增量,一般是修饰int型,效率主要体现在一下几个方面
1一般该列会作为索引,在innodb中,非聚簇索引是建立在聚簇索引上的,有主键就主键是聚簇索引,否则隐藏一个唯一的列作为聚簇索引,在非聚簇索引中不是包含行指针而是会包含主键,或没有主键时会包含唯一的那个隐藏列来一起存储,这样以对主键的长度有一定的要求,越短会对索引存储空间的消耗越少,同时索引查询也会快一点。
InnoDB对主键建立聚簇索引。如果你不指定主键,InnoDB会用一个具有唯一且非空值的索引来代替。如果不存在这样的索引,InnoDB会定义一个隐藏的主键,然后对其建立聚簇索引。一般来说,DBMS都会以聚簇索引的形式来存储实际的数据,它是其它二级索引的基础。
2在数据插入时,如果是自增的,那么可以保证后面插入的数据在页内是接在前一个记录后面的,这样不会因为聚簇索引的物理顺序而引起排序,否则可能导致后面的记录比已经插入的记录跟靠前,导致页内记录向后移动
3因为innodb缓存的是数据和索引,索引减小,对缓存空间的消耗也有一定贡献
本文转自 dogegg250 51CTO博客,原文链接:http://blog.51cto.com/jianshusoft/766602,如需转载请自行联系原作者