作者:禅与计算机程序设计艺术
1.简介
InnoDB是MySQL默认存储引擎之一。它是事务性的、支持外键约束的、聚集索引组织的数据表,支持诸如行级锁定等高级功能。InnoDB采用的是聚集索引结构,每张表都存在一个主索引,通过主索引访问数据;其次,InnoDB支持辅助索引以提升查询性能,索引数据按主键顺序存放。
MyISAM是另一种被广泛使用的存储引擎,它支持全文搜索、压缩、空间函数等高级特性。但是,在最新版本的MySQL中,已经逐步淘汰了对MyISAM的支持,而只保留了对InnoDB的支持。
本文将从InnoDB和MyISAM索引底层实现原理角度出发,深入理解它们之间的一些不同点和相似点,并介绍InnoDB索引结构的一些优缺点,包括聚集索引、辅助索引、覆盖索引、索引维护、回表查询、索引失效、死锁以及解决方案。我们还会深入分析InnoDB和MyISAM索引之间关系,并将相关概念进行进一步阐述。最后,作者会介绍索引选择性统计信息的收集方法,以及基于索引的查询优化的方法论。这些知识将帮助读者更好的理解索引的工作原理和应用。
文章的内容主要包括以下7章:
- InnoDB和MyISAM索引的概念与区别
- InnoDB索引结构及原理
- MyISAM索引结构及原理
- InnoDB索引的聚集索引和辅助索引
- InnoDB索引数据结构和算法
- MySQL如何维护索引
- 索引选择性统计信息的收集方法
- 使用索引的查询优化方法论
- 其它一些注意事项
2.基本概念术语说明
2.1 InnoDB索引相关术语和定义
1) InnoDB索引:Inn