MySQL可怕的笛卡尔积
以前总说笛卡尔积会引起数据膨胀,都没当回事,当你遇见的时候,才知道它有多可怕,还好服务器没有被我跑挂掉;
mysql的查询语句如下:
select
a.id,b.cid
from a
inner join b on a.user_name=b.user_name and b.registerdate='2021-01-24'
where a.registerdate='2021-01-24'
写了一个存储过程,按照用户的注册日期去一天一天的追加历史数据,a表和b表的的关联字段,注册日期字段,都加了索引,sql的explain堪称完美;
这一天的数据量就12万左右,按照以往的经验,最多两秒就出结果了,但是存储过程循环到这一天的时候卡了五分钟也没有查询出来,发现情况不对,当然是立马kill掉,去count了一下数据有10多亿,我的天怎么想都不可能,一去看那天的数据,发现了猫腻,原来那天,user_name字段几乎全是空字符串,上网一百度才知道,原来空字符串join会引起传说中的笛卡尔积,还好看着追历史数据,不是服务器跑挂了都不知道。
MySQL可怕的笛卡尔积相关推荐
- 【mySql】利用笛卡尔积生成连续数字
原理: 有2行数据的表a和有3行数据的表b进行笛卡尔积(第三个c表只有一个数据xi=0,不会增加结果表的行数), 会生成2x3=6行数据的结果表,在select时将变量自加1,可得到连续数字. 仅需要 ...
- mysql中的笛卡尔积与解决办法
- mysql怎么消除笛卡尔积_mysql左链接笛卡尔积如何避免?
我有一张表如图 id projectName pId cDate amount period contractNum ownerName archives 1 江夏区大桥 1 2017 190000 ...
- ubuntu卸载mysql
首先在终端中查看MySQL的依赖项:dpkg --list|grep mysql 卸载: sudo apt-get remove mysql-common 卸载:sudo apt-get autore ...
- 大数据WEB阶段(六)MySql详解(二)
MySql详解(二) 一.分组查询 语法: select col_name1,col_name2... from tb_name group by having ...; 练习: 执行下面的SQL,创 ...
- MySql笔记(从安装到熟练一站式笔记)
1.MySql介绍 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不 ...
- Java一年,面试总结
小小又去面试了,今日面试总结如下 第一题 数据库有a如下的表,表结构如下 员工编号 职务 组织编码 employeeID JobTitle OrganizationCode 要求,编写部门员工数> ...
- Mysql 宕机引发索引丢失很可怕,文件 IO 中如何保证掉电不丢失数据?
欢迎关注方志朋的博客,回复"666"获面试宝典 众所周知,存储设计离不开文件 IO,将数据存储到文件中进行持久化,是大多数消息队列.数据库系统的常规操作.为了更贴近实际的生产场景, ...
- mysql中什么是空集合_mysql 中使用笛卡尔积 避免其中一方为空集时结果就是空集的方法...
mysql 里 笛卡尔积在实际开发中很少遇到,今天我是想将多个不同的select的结果(每个select的集合大小都是1或者0)只用一次查询返回在同一行中,但发现个问题,当其中一个结果集为空集时,最终 ...
最新文章
- 使用css实现瀑布流的效果
- python输入什么就输出什么意思_一文读懂Python的输入和输出
- 【Spring注解系列07】Spring注入Bean有哪些方式总结
- go mysql 数据 json,golang查询数据返回json
- mysql的建库建表语句_SQL语句(建库、建表、修改语句)
- fork()的流程图
- 如何自定义苹果Mac睡眠时间,掌握作息?
- matlab卷积神经网络代码_卷积神经网络(四):反向传播过程的代码实现
- Canvas画布进阶篇---绘制文本
- PS滤镜学习视频教程
- 关于onselect与onchange的介绍
- CSS3的新特性:css响应式多列布局、断字
- 名帖107 俞和 小楷临《乐毅论》
- Android系统ROM+RAM基础裁剪
- js中判断字符串是否相等,使用 == 或===
- 技术分享 | OpenVINO及EdgeX摄像头管理和推理平台
- 可口可乐迎来重大人事变动:全球COO、CFO和CTO都要换人
- 呵,偶居然也能“说教”了
- 值得收藏|关于2022年视频号经营解决方案,都在这里了
- 富士通打印机调整位置_打印机页首空调整和左边距调整
热门文章
- 关于 fatal error LNK1158: 无法运行“rc.exe” 的解决方法
- idea 汉化版 自定义类注释与方法注释 解决自定义注解出现红线
- Qt:QTableView(01) 的用法
- out.flush()
- oracle中update语句更新字段
- (二十七) 开运算、闭运算、形态梯度、顶帽、黑帽
- 第十三章:项目相关方管理 - (13.1 识别相关方)
- 新型冠状病毒实时动态
- 澳洲网:超8成雇主对澳大利亚高校毕业生表示满意
- CTime和COleDateTime区别 比较