文档介绍:
第三章 SQL查询优化
——理论部分
课程回顾
会使用函数处理查询结果
会使用聚合函数查询统计数值
会使用Group By进行分组查询
掌握多表联接查询
技能展示
理解索引的作用和分类
会正确使用索引来提高查询效率
会通过查看执行计划来分析查询效率
本章结构
SQL查询优化
索引常见类型
使用索引
索引基本原理
管理索引
维护索引统计信息
基本概念
使用索引的查询语句写法
禁用与重建索引
主要特性
整理索引数据碎片
创建索引的过程
执行计划
客户端统计
强制使用指定索引
查询优化概述
查询优化概述
对数据库查询操作进行性能的优化以提升查询效率的行为就称为查询优化
办法1:让我走的步数最短,也就是路径最短
办法2:让我经过的堵点最少
问题:如果将查询比为一次旅行的话,那么查询优化是如何让旅行到达目的地时间最短?
索引基本原理
基本概念
索引的主要特性
创建索引的过程
索引的基本概念
索引就是通过对数据表的数据建立类似图书目录和图书馆图书索引卡一样的“数据目录”。
1. 给图书进行分类,同类的图书放在同一个书架;
2. 给图书进行编号,编号由类别编号+书编号+书架号组成;
3. 将编号制作成卡片放到卡片柜里,一个卡片柜放置一个类别的卡片;
1. 根据图书类别查找到相应的卡片柜;
2. 在卡片柜里按照图书名称查找对应卡片和书籍编号;
3. 根据卡片的书籍编号,找到图书馆里的书架号,从而找到相应书籍;
案例需求:,管理员应该如何去做?
案例需求:读者如果希望找到自己需要的图书该如何做呢?
索引原理示意
索引字段(姓名)
记录地址
…
Amy
Andy
Bruce
…
Candy
…
索引表
学生表
案例需求:希望在数据库中查找Candy的信息
学号
姓名
班级
…
3
6
11
23
在索引表里,查找姓名Candy的。因为索引里的姓名是顺序排列,在C开头的姓名里查找到Candy
然后根据Candy对应的记录地址,定位到数据表的记录
索引主要特性
索引特征
当表中的数据发生变化的时候,变化的数据可能同时涉及索引中定义的列,那么索引中的数据也会产生更变。这样会导致数据变更维护的开销增加。所以,索引的建立应该按需而定,不能盲目
使用索引的时机
数据量越大越适合用索引
选择性越好越适合用索引
数据表数据变化小适合使用索引
创建索引的过程
新建索引
为索引命名
选择索引列
完成索引的创建
教员演示操作过程