Mysql innodb索引与查询优化
一、 引言 概要 (1) innodb索引类型与B+树 (2) 索引使用注意事项 (3) 车点评业务表索引优化案例 问题 (1) InnoDb索引为什么要用b+树? (2) 聚集索引与普通索引有什么区别? (3) 为什么主键最好是自增? (4) 组合索引有什么优势? (5) 有哪些实际业务场景索引搞不定? 二、 innodb索引类型与B+树 INNODB主要有几种索引:B+树索引,自适应哈希索引,全文索引 ,覆盖索引。 B+树索引是一种多叉平衡查找树。 自适应哈希索引是mysql对于频繁查询的数据采取的hash存储优化,用户无法选择设置。 全文索引主要用于全文检索使用。 覆盖索引说的是查询的字段都属于同一个索引字段,这样效率非常高。 查找树 查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree),红黑树(Red-Black Tree ),B-tree/B+-tree/ B*-tree (B~Tree)。前三者是典型的二叉查找树结构,其查找的时间复杂度O(log2N)与树的深度相关,那么降低树的深度自然会提高查找效率。 B 树 /B+ 树 /B* 树 B树 B+树 所有的叶子结点中包含了全部关键字的信息,及指向含有这些关键字记录的指针,且叶子结点本身依关键字的大小自小而大的顺序链接。 数据库索引采用B