SQL-索引(二)- 单表建立索引以及优化

单表建立索引

1. 创建表
SQL-索引(二)- 单表建立索引以及优化
2. 插入值
SQL-索引(二)- 单表建立索引以及优化
3. 查询
SQL-索引(二)- 单表建立索引以及优化
4. 需求
SQL-索引(二)- 单表建立索引以及优化
正常查询结果
SQL-索引(二)- 单表建立索引以及优化
执行过程
SQL-索引(二)- 单表建立索引以及优化
SQL-索引(二)- 单表建立索引以及优化

没有建立索引(主键默认是索引)
SQL-索引(二)- 单表建立索引以及优化

开始优化
以where 后面的查询条件3 个field组合成一个索引新建索引2 个方式
SQL-索引(二)- 单表建立索引以及优化

SQL-索引(二)- 单表建立索引以及优化

建立索引之后的性能
type 性能优化了, 但是Extra 还是Using filedsort , 全表扫描, 最坏情况
因为comments>1 , 定义的CCV index, 到第二个索引时候就不好用了, 还得全局检索comments>1 的数据。 范围以后的索引会导致失效
SQL-索引(二)- 单表建立索引以及优化

如果将comments>1 变成 comments= 1. Extra 性能提升了, 但是改变了业务, 不能采取
SQL-索引(二)- 单表建立索引以及优化

尝试再次优化索引
删除当前索引
SQL-索引(二)- 单表建立索引以及优化
建立新索引, 尝试索引组合里面没有 comments
SQL-索引(二)- 单表建立索引以及优化
性能OK , 既解决了type 的问题, 又解决了Extra 的问题
SQL-索引(二)- 单表建立索引以及优化
SQL-索引(二)- 单表建立索引以及优化