关于聚集索引,innodb会按照如下规则进行处理:
1,如果一个主键被定义了,那么这个主键就是作为聚集索引
2,如果没有主键被定义,那么该表的第一个唯一非空索引被作为聚集索引
3,如果没有主键也没有合适的唯一索引,那么innodb内部会生成一个隐藏的主键作为聚集索引,这个隐藏的主键是一个6个字节的列,改列的值会随着数据的插入自增。
但是问题来了,聚集索引的存在,会导致每次update或者insert数据的时候,还要额外更新一下索引,如果表的数据量很大,势必会影响更新和插入数据时的性能。innodb是面对这种情况是如何处理的?或者说我们该如何处理这种情况?可以把聚集索引删除吗?但我看innodb的特性决定了聚集索引好像没法删除
建议这种问题自己去做做测试,找不同的引擎使用不同的索引验证一下,聚集索引带来的更新索引性能牺牲根本可以忽略,甚至合适的聚集索引反而会提高更新插入性能,mysql或者其他类型的DB可以给你很多种选择。