1.索引
-
优缺点:
优:提高检索效率,降低IO成本。通过索引排序,降低cpu消费。
缺:索引需要占用空间,降低表更新效率
2.索引结构
1) B+Tree:
相比B-Tree:所有的数据只存在叶子节点。叶子节点形成单向链表
mysql对数据结构B+Tree进行了优化,增加了一个指向相邻叶子节点的链表指针,形成了带有顺序的B+Tree
2)hash索引
特点:
-
- 因能用于对等比较(=,in),不能用于范围查询(like >)
- 无法进行排序操作
- 查询效率高,通常只需要一次查找
Memory支持Hash索引
3)为什么使用B+Tree?
相比于二叉树,层数少,效率高。
相比B-Tree,B+Tree只把数据存于叶子节点,可以降低树的高度,提高性能
相比Hash,支持排序,范围查找
-
引擎
常用引擎对比
特点 | InnoDb | MyISAM | Memory |
事务 | 支持 | - | - |
锁机制 | 行锁 | 表锁 | 表锁 |
B+Tree索引 | 支持 | 支持 | 支持 |
Hash索引 | 支持 | ||
空间使用 | 高 | 低 | |
内存使用 | 高 | 低 | 中等 |
批量插入速度 | 低 | 高 | 高 |
外键 | 支持 |
InnoDB:默认存储引擎,支持事务,外键。如果对事务的完整性要求高,要求数据一致性,数据库出来插入,查询,还包含许多修改删除,那么选择此引擎。
MyISAM:如果以读和插入为主,只进行少量的修改,删除,对事务的完整性,并发性要求不高,可以选择。
Memory:将数据存储内存中,访问速度快。缺陷:表过大可能内存不够。
标签:Hash,Tree,高级,支持,索引,mysql,节点 From: https://www.cnblogs.com/xiaomenga/p/17188012.html