InnoDB与MyISAM 聚集索引与非聚集索引
InnoDb: 支持acid事务,支持行级锁和外键约束,容灾性好,可建立缓冲池存数据及索引,不保存行数,锁粒度为行。 MyLASM: 不支持事务,外键,读写时需锁表,效率低,保存了行数,读多于写时可选择。复合索引速度快于innodb
聚簇索引和非聚簇索引: InnoDB使用的是聚簇索引,MyLASM使用非聚簇索引,对于聚簇索引存储来说,行数据和主键B+树存储在一起,辅助键B+树只存储辅助键和主键,主键和非主键B+树几乎是两种类型的树。对于非聚簇索引存储来说,主键B+树在叶子节点存储指向真正数据行的指针,而非主键。
InnoDB使用的是聚簇索引,将主键组织到一棵B+树中,而行数据就储存在叶子节点上,若使用"where id = 14"这样的条件查找主键,则按照B+树的检索算法即可查找到对应的叶节点,之后获得行数据。若对Name列进行条件搜索,则需要两个步骤:第一步在辅助索引B+树中检索Name,到达其叶子节点获取对应的主键。第二步使用主键在主索引B+树种再执行一次B+树检索操作,最终到达叶子节点即可获取整行数据。
上一篇:
通过多线程提高代码的执行效率例子
下一篇:
java是什么软件?如何理解Java?