Mysql查询优化从入门到跑路(三)查询的基本操作

查询的基本操作
1.选择操作
对应的是限制条件,操作对象是二维表的行。
    优化方式:选择操作下推
    目的:尽量减少连接操作前的元租数,使得中间临时关系尽量少(元祖数少,连接得到的元组数就少)
    好处:这样可能减少IO和CPU的消耗、节约内存空间
2.投影操作
对用的SELECT查询的目的列对象
    优化方式:投影操作下推
    目的:尽量减少连接操作前的列数,使得中间临时关系尽量小(选择操作是使元组的个数尽量少,投影操作是使一条元组尽量少)
    好处:虽然不能减少IO(多数数据库存储方式是行存储,元组是读取的最基本单位,所以要想操作列必须读取一行数据),但可以各减少连接后的中间关系的元组大小,节约内存空间。
3.连接操作
    连接操作有优化方式吗?
    答案是毋庸置疑的
    1.多表连接中每个表被连接的顺序决定着效率
    2.多表连接每个表被连接的顺序被用户语义决定(内连接、外连接中的左连接等)
 
查询的2种类型
根据SQL语句的形式特点,还可以做如下区分:
1.针对SPJ的查询优化(如上诉三种基本操作)
2.针对非SPJ的查询优化(Group by等操作)
 
注:从下次开始讲解逻辑查询优化和物理查询优化,这些是数据库查询优化的重中之重!!!
posted @ 2017-09-08 23:17  一寂知千秋  阅读(192)  评论(0编辑  收藏  举报