1、自优化能力

1.1、MySQL索引的自优化-AHI (自适应HASH索引)

  1. MySQLInnoDB引擎, 能够创建只有Btree
  2. AHI作用:
  3. 自动评估"热"的内存索引page, 生成HASH索引表
  4. 帮助InnoDB快速读取索引页, 加快索引读取的效果
  5. 相当与索引的索引
  6. show variables like '%index%';
  7. #默认已开启 ON
  8. innodb_adaptive_hash_index

1.2、MySQL索引的自优化-Change buffer

比如insert, update, delete 数据
对于聚簇索引会立即更新
对于辅助索引, 不是实时更新的 ★
在InnoDB 内存结构中, 加入了insert buffer (会话), 现在版本叫change buffer
Change buffer 功能是临时缓冲辅助索引需要的数据更新
当我们需要查询新insert 的数据, 会在内存中进行merge (合并)操作, 此时辅助索引就是最新的

1.3、8.0 版本索引的新特性

a. 不可见索引: invisable/visable  index 
针对优化器不可见, 但是索引还在磁盘存在, 还会自动维护。
对于索引维护时, 不确定索引是否还有用, 这时可以临时设定为 invisable
#大表的索引删除和创建很耗时, 拿不定注意可以暂时设置 invisable观察一段时间

b. 倒序索引
应用场景:
8.0之前, 创建索引时, 无论是单列索引还是联合索引, 都是默认只能按照从小到大的顺序排序
不能差创建按照从大到小的顺序排序

SELECT *
FORM t1
WHERE c = xxx
ORDER BY a ASC, b DESC;

#创建联合索引, 指定b列为降序, c,a为升序
index idx (c,a,b desc)