以前总说笛卡尔积会引起数据膨胀,都没当回事,当你遇见的时候,才知道它有多可怕,还好服务器没有被我跑挂掉;

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可怕的笛卡尔积相关推荐

  1. 【mySql】利用笛卡尔积生成连续数字

    原理: 有2行数据的表a和有3行数据的表b进行笛卡尔积(第三个c表只有一个数据xi=0,不会增加结果表的行数), 会生成2x3=6行数据的结果表,在select时将变量自加1,可得到连续数字. 仅需要 ...

  2. mysql中的笛卡尔积与解决办法

  3. mysql怎么消除笛卡尔积_mysql左链接笛卡尔积如何避免?

    我有一张表如图 id projectName pId cDate amount period contractNum ownerName archives 1  江夏区大桥 1 2017 190000 ...

  4. ubuntu卸载mysql

    首先在终端中查看MySQL的依赖项:dpkg --list|grep mysql 卸载: sudo apt-get remove mysql-common 卸载:sudo apt-get autore ...

  5. 大数据WEB阶段(六)MySql详解(二)

    MySql详解(二) 一.分组查询 语法: select col_name1,col_name2... from tb_name group by having ...; 练习: 执行下面的SQL,创 ...

  6. MySql笔记(从安装到熟练一站式笔记)

    1.MySql介绍 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不 ...

  7. Java一年,面试总结

    小小又去面试了,今日面试总结如下 第一题 数据库有a如下的表,表结构如下 员工编号 职务 组织编码 employeeID JobTitle OrganizationCode 要求,编写部门员工数> ...

  8. Mysql 宕机引发索引丢失很可怕,文件 IO 中如何保证掉电不丢失数据?

    欢迎关注方志朋的博客,回复"666"获面试宝典 众所周知,存储设计离不开文件 IO,将数据存储到文件中进行持久化,是大多数消息队列.数据库系统的常规操作.为了更贴近实际的生产场景, ...

  9. mysql中什么是空集合_mysql 中使用笛卡尔积 避免其中一方为空集时结果就是空集的方法...

    mysql 里 笛卡尔积在实际开发中很少遇到,今天我是想将多个不同的select的结果(每个select的集合大小都是1或者0)只用一次查询返回在同一行中,但发现个问题,当其中一个结果集为空集时,最终 ...

最新文章

  1. 使用css实现瀑布流的效果
  2. python输入什么就输出什么意思_一文读懂Python的输入和输出
  3. 【Spring注解系列07】Spring注入Bean有哪些方式总结
  4. go mysql 数据 json,golang查询数据返回json
  5. mysql的建库建表语句_SQL语句(建库、建表、修改语句)
  6. fork()的流程图
  7. 如何自定义苹果Mac睡眠时间,掌握作息?
  8. matlab卷积神经网络代码_卷积神经网络(四):反向传播过程的代码实现
  9. Canvas画布进阶篇---绘制文本
  10. PS滤镜学习视频教程
  11. 关于onselect与onchange的介绍
  12. CSS3的新特性:css响应式多列布局、断字
  13. 名帖107 俞和 小楷临《乐毅论》
  14. Android系统ROM+RAM基础裁剪
  15. js中判断字符串是否相等,使用 == 或===
  16. 技术分享 | OpenVINO及EdgeX摄像头管理和推理平台
  17. 可口可乐迎来重大人事变动:全球COO、CFO和CTO都要换人
  18. 呵,偶居然也能“说教”了
  19. 值得收藏|关于2022年视频号经营解决方案,都在这里了
  20. 富士通打印机调整位置_打印机页首空调整和左边距调整

热门文章

  1. 关于 fatal error LNK1158: 无法运行“rc.exe” 的解决方法
  2. idea 汉化版 自定义类注释与方法注释 解决自定义注解出现红线
  3. Qt:QTableView(01) 的用法
  4. out.flush()
  5. oracle中update语句更新字段
  6. (二十七) 开运算、闭运算、形态梯度、顶帽、黑帽
  7. 第十三章:项目相关方管理 - (13.1 识别相关方)
  8. 新型冠状病毒实时动态
  9. 澳洲网:超8成雇主对澳大利亚高校毕业生表示满意
  10. CTime和COleDateTime区别 比较