当前位置: 首页 > article >正文

关系数据库(查询优化)

  1.          选择操作的实现
    select * from student where Sno='201212128';
  2. 简单的全表扫描法


    优点:对于小表简单有效
    缺点:对于大表顺序扫描浪费时间效率低下
  3. 索引扫描方法




     
  • 连接操作的实现
     

连接操作是查询处理中最耗时的操作之一

select *from student,sc where student.sno=sc.sno;

 算法一:嵌套循环:
对外层循环(student)的每一个元组(s),检索内层循环(sc)中的每一个元组,并检查两个元组的连接属性(sno)的属性是否相同,如果满足 连接条件,则串接后作为结果输出,直到外层表中的元组循环结束。

算法二:排序--合并算法
表没有排序,则先按表的连接属性对sno进行排序,取student表中的的一个sno,依次扫描sc中具有相同属性的sno元组,将他们连接起来,扫描完sc中的sno元组发现没有对应的sno,则拿出student的第二个sno对sc中的sno元组进行扫描,直到student中的sno元组扫描完成。

  •  优化准则:
  •  关系代数表达式等价转换规则:
     
  1. 连接,笛卡尔积的交换律。
  2. 连接,笛卡尔积的结合律
  3. 投影的串接定律
  4. 选择的串接定律
  5. 选择与投影的交换律
  6. 选择与笛卡尔积的交换律
  7. 选择与并的分配律
  8. 选择与差的分配律
  9. 选择对自然连接的分配律
  10. 投影与笛卡尔积的分配律
  11. 投影与并的分配律


http://www.kler.cn/a/13952.html

相关文章:

  • 软件测试工程师需要达到什么水平才能顺利拿到 20k 无压力?
  • ChatGPT实战100例 - (05) ChatGPT 结合 Mermaid 的 Gantt 图表示
  • 如何在Java中创建临时文件?
  • MySQL数据库——MySQL使用DISTINCT过滤重复数据
  • 【SCI电气】考虑不同充电需求的电动汽车有序充电调度方法(Matlab代码实现)
  • 机器学习 探索性数据分析
  • vue3 Pinia快速入门
  • 指纹浏览器科普:管理上百个社媒账号?窗口同步?RPA自动化?
  • MySQL基础练习——创建数据库、数据表,并进行修改
  • 【Chano的SFM教程】3dmax 面部表情.VTA基本制作教程
  • 匿名管道与命名管道
  • springboot集成webservice
  • 【AutoGPT】你自己运行,我先睡了—— ChatGPT过时了吗?
  • JUC多并发编程 LockSupport和线程中断
  • 最佳实践:Android应用中的网络请求和数据缓存
  • 利用校正板对无人机影像辐射校正
  • [算法前沿]--004-transformer的前世今生
  • java超市会员积分管理系统
  • 【Android车载系列】第10章 系统服务-SystemServer源码分析(API28)
  • mybatis04-mybatis缓存、分页插件、注解开发(一对一、多对一、多对多)