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

pgsql隐式联查的笛卡尔积和子查询性能

语句:

1、select a.* from table_a a,table_b b where b.id in (‘1’,‘2’,‘3’) and a.con =b.con
2、select a.* from table_a where a.con in (select con from id in (‘1’,‘2’,‘3’))

条件:

1、table_a表的con字段是索引,table_b的id字段是索引
2、table_b 数据量千以下

性能:

第一个查询:使用了笛卡尔积和WHERE子句来过滤结果。这种方法在数据量较大时可能会导致效率问题,因为笛卡尔积会产生大量的中间结果集,然后再通过WHERE子句中的条件来过滤。即使两个表的con字段和id字段都是索引,由于笛卡尔积的产生,索引的优势可能会被抵消。
第二个查询:使用了子查询来先从table_b中筛选出符合条件的con值,然后再基于这些值去查询table_a。这种方法可以避免产生大型的中间结果集,因为它首先减少了需要从table_a中检索的数据量。如果table_a是小表,那么这种策略尤其有效,因为它可以快速地从table_a中定位到所需的记录。


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

相关文章:

  • Ubuntu20.04 磁盘空间扩展教程
  • NoSQL与SQL比较
  • 内网穿透实现MC联机
  • 基于Langchain-Chatchat + ChatGLM 本地部署知识库
  • 改进候鸟优化算法之四:基于动态环境的MBO算法(D-MBO)
  • Databend x 沉浸式翻译 | 基于 Databend Cloud 构建高效低成本的业务数据分析体系
  • django微博热搜数据分析与可视化系统python毕业设计
  • 利用k8s Infra 容器,解决pod网络故障注入的问题
  • Python第十五章(文件)
  • spring boot打完jar包后使用命令行启动,提示.jar 中没有主清单属性
  • flink实战--flink的job_listener使用解析
  • 【Docker】Docker Registry(镜像仓库)
  • HTTPS之使用acme.sh申请免费ssl证书
  • Vue实现视频播放
  • 项目安全问题及解决方法-----xss处理
  • gerrit(2) | 为什么使用 gerrit
  • 蓝桥杯刷题--python-1
  • vue前端+nodejs后端通信-简单demo
  • 网络安全面试题收集
  • 线程池,定时器以及阻塞队列(生产者/消费者模型)
  • 春节技术特辑:一体化运维管理系统,让节日更放心
  • unordered_map和unordered_set
  • Spring面试大全-IOC容器03
  • deb 打包
  • 【计算机网络】Socket的SO_TIMEOUT与连接超时时间
  • 套路化编程 C# winform 自适应缩放布局