关系代数是关系数据库的抽象语言
如何实现关系代数有利于理解查询优化的过程
1、选择操作实现
- 全表扫描法(Table Scan):对基本表顺序扫描,找出符合条件的元组,作为结果输出,适合小表,不适合大表
- 索引扫描法(Index Scan):适合选择条件中的属性上有索引(B+树索引,或者Hash索引),通过索引找到满足条件的元组指针,在通过指针找到元组
例子:
2、连接操作的实现(自然连接,或者等值连接这些常见的)
嵌套循环算法:分为外层循环和内层循环,当满足条件的时候输出
排序合并算法:如果连接的表没有排序,先对 连接属性进行排序,排序后只需要对两个表 分别扫描一次
索引连接算法:其中有个表的连接属性 已经建立了一个索引,直接通过索引找到对应的元组,连接起来
hash连接算法:用同一个hash函数把 两个表的元组 散列到hash表中,最后把每个桶里面的元组,按照条件 连接起来