技术心得:数据库之笛卡尔积

简介: 技术心得:数据库之笛卡尔积

"

1. 什么是笛卡尔积

1.1 定义

笛卡尔积又叫笛卡尔乘积,是一个叫笛卡尔的人提出来的。

简单的说就是两个集合相乘//代码效果参考:https://v.youku.com/v_show/id_XNjQwMDM3NjE2MA==.html

的结果。

具体的定义去看看有关代数系的书的定义。

直观的说就是

集合A{a1,a2,a3} 集合B{b1,b2}

他们的 笛卡尔积 是 A*B

={(a1,b1),(a1,b2),(a2,b1),(a2,b2),(a3,b1),(a3,b2)}

任意两个元素结合在一起

笛卡尔(Descartes)乘积又叫直积。假设集合A={a,b},集合B={0,1,2},则两个集合的笛卡尔积为{(a,0),(a,1),(a,2),(b,0),(b,1), (b,2)}。可以扩展到多个集合的情况。类似的例子有,如果A表示某学校学生的集合,B表示该学校所有课程的集合,则A与B的笛卡尔积表示所有可能的选课情况。

1.2

SQLL笛卡尔积示例

SELECT

* FROM table1 , table2

2.

什么场景会产生笛卡尔积

笛卡尔积产生,有两种情况:

表连接缺少关联条件,这个是必须要改的;

表连接有关联条件,但是oracle判断用笛卡尔积更快,也会出现笛卡尔积,这个时候要看实际执行速度;oracle这样判断,一般是表比较小,这个时候要特别检查表的数据量是不是真的很少,//代码效果参考:https://v.youku.com/v_show/id_XNjQwNjgyNjQ5Mg==.html

以免oracle因为统计信息错误而误判。

3. SQL笛卡尔积的危害

4. 如何避免SQL笛卡尔积

Left join ,

hint


"
image.png
相关文章
|
12天前
|
前端开发 Java Go
新一代数据库技术的崛起与应用前景
本文探讨了新一代数据库技术在不同领域的崛起和应用前景。通过对前端、后端、Java、Python、C、PHP、Go等多种类型的技术进行分析,我们揭示了新一代数据库技术的优势和特点,并展望了其在未来的发展趋势。本文旨在为读者全面了解新一代数据库技术提供参考和指导。
|
5天前
|
Java 数据库连接 API
后端开发之用Mybatis简化JDBC的开发快速入门2024及数据库连接池技术和lombok工具详解
后端开发之用Mybatis简化JDBC的开发快速入门2024及数据库连接池技术和lombok工具详解
13 3
|
4天前
|
监控 Java 数据库连接
Java开发者必读:连接池技术如何提升数据库连接效率
【6月更文挑战第24天】Java开发中,面对高并发的数据库访问,连接池技术成为性能优化的关键。它预先创建连接池,减少频繁的连接创建/关闭,提升响应速度,节省资源,并增强系统稳定性。例如,HikariCP连接池通过配置实现DB连接管理,简化代码并提升应用性能。
|
12天前
|
SQL 存储 NoSQL
SQL与NoSQL数据库的选择:技术与场景驱动下的决策
【6月更文挑战第16天】**SQL vs NoSQL数据库:技术与应用场景比较。SQL数据库以其关系模型、ACID特性、灵活查询及事务处理见长,适合结构化数据和强一致性场景。NoSQL则以数据模型灵活性、高可扩展性、高性能及低成本著称,适合大数据、高并发和快速迭代的需求。选择应基于业务需求、数据特性、系统架构和成本。**
|
1天前
|
编译器 API 数据库
技术好文共享:(xxxx)十一:SQLite3的db数据库解密(三)数据库在线备份
技术好文共享:(xxxx)十一:SQLite3的db数据库解密(三)数据库在线备份
|
1天前
|
存储 NoSQL 关系型数据库
技术心得:常用数据库有哪些
技术心得:常用数据库有哪些
|
1天前
|
SQL 缓存 Java
必知的技术知识:hsql数据库使用详解(入门)及快速使用
必知的技术知识:hsql数据库使用详解(入门)及快速使用
|
1天前
|
存储 关系型数据库 MySQL
技术笔记:MySQL数据库优化详解(收藏)
技术笔记:MySQL数据库优化详解(收藏)
|
1天前
|
SQL 关系型数据库 MySQL
技术笔记:python连接mysql数据库
技术笔记:python连接mysql数据库
|
2天前
|
XML 机器学习/深度学习 存储
技术心得:对象的序列化存入数据库,与反序列化
技术心得:对象的序列化存入数据库,与反序列化

热门文章

最新文章