02.20 Day 32 - 重温 Day 22-24

大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 32 天,也是我第 95 次进行这种操作。

今天我温习了该专栏里叫《普通索引和唯一索引,应该怎么选择?》、《MySQL 为什么有时候会选错索引?》、《怎么给字符串字段加索引?》的文章。

关键词总结:查询过程(普通索引、唯一索引)、更新过程(change buffer 使用条件、目标页在内存中的处理流程、目标页不在内存中的处理流程)、change buffer 的使用场景(适用的场景、不适用的场景)、索引选择和实践(尽量选普通索引、机械硬盘环境下)、change buffer 和 redo log(redo log 所优化的方面、change buffer 所优化的方面)、优化器逻辑(最优执行方案、综合判断、判断扫描行数、获得索引基数、两种存储索引统计的方式)、索引选择异常和处理(采用 force index 强行选择一个索引、引导 MySQL 使用我们期望的索引、新建一个更合适的索引,供优化器做选择,或删掉误用的索引)、如何为邮箱字段建立合理的索引?(创建前缀索引、前缀索引可能产生的问题、建立索引时需要关注的点)、前缀索引对覆盖索引的影响(无法利用覆盖索引)、其他处理方式(倒序存储、使用 hash 字段、两种方法的区别)、字符串字段创建索引的几种方式。

所学总结:

普通索引和唯一索引,应该怎么选择?

查询过程

  • 普通索引
  • 唯一索引

更新过程

  • change buffer 使用条件
  • 目标页在内存中的处理流程
  • 目标也不在内存中的处理流程

change buffer 的使用场景

  • 适用的场景
  • 不适用的场景

索引选择和实践

  • 尽量选普通索引
  • 机械硬盘环境下

change buffer 和 redo log

  • redo log 所优化的方面
  • change buffer 所优化的方面
     

MySQL 为什么有时候会选错索引?

优化器逻辑

  • 最优执行方案
  • 综合判断
  • 判断扫描行数
  • 获得索引基数
  • 两种存储索引统计的方式

索引选择异常和处理

  • 采用 force index 强行选择一个索引
  • 引导 MySQL 使用我们期望的索引
  • 新建一个更合适的索引,供优化器做选择,或删掉误用的索引
     

怎么给字符串字段加索引?

如何为邮箱字段建立合理的索引?

  • 创建前缀索引
  • 前缀索引可能产生的问题
  • 建立索引时需要关注的点

前缀索引对覆盖索引的影响

  • 无法利用覆盖索引

其他处理方式

  • 倒序存储
  • 使用 hash 字段
  • 两种方法的区别

字符串字段创建索引的几种方式

  • 完整索引
  • 前缀索引
  • 倒序存储
  • hash 字段及其索引
     

末了

重新总结了一下文中提到的内容:普通索引和唯一索引的选择、数据的查询和更新过程、change buffer 的机制以及应用场景、索引选择的实践、索引统计的更新机制、优化器存在选错索引的可能性、索引统计信息不准确导致的问题、在应用端用 force index 来强行指定索引、如何为邮箱字段建立合理的索引?、前缀索引对覆盖索引的影响、其他处理方式、字符串字段创建索引的几种方式。

发布了182 篇原创文章 · 获赞 12 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/stevenchen1989/article/details/104404431
今日推荐