1. 优缺点

- 使用索引可以加快数据的检索速度
- 使用唯一索引保证数据库中每一行数据的唯一性

- 创建和维护索引耗费时间，索引重排会降低效率
- 占用额外物理存储

2. 底层数据结构

**hash**
通过 hash 可以快速通过 key 获取对应的 index，找到对应 value，但是会有 Hash 冲突，MySQL 的 InnoDB 引擎存在一种自适应哈希索引，每一个哈希桶都是一个小型 B+树结构
Hash 不支持顺序和范围查询

**二叉树**
