暂无图片
MySQL 下笛卡尔积一般超过多大 就不能用了?
我来答
分享
暂无图片 匿名用户
MySQL 下笛卡尔积一般超过多大 就不能用了?

MySQL 下笛卡尔积一般超过多大 就不能用了?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新

具体的笛卡尔积大小限制值取决于多个因素,包括硬件资源、系统配置、查询执行计划和数据表的大小。在 MySQL 中,并没有一个固定的阈值来准确定义何时笛卡尔积的大小会导致性能下降。

尽管没有明确的限制值,但是当结果集行数超过几万或者更多时,往往会引发性能问题。这是因为笛卡尔积操作的复杂度随着参与联接的数据量呈指数级增长。联接的表越多、每个表中的数据越多,产生的笛卡尔积结果集就会变得更大,从而导致查询执行时间显著增加。

建议在设计查询和数据模型时需要避免无意义的笛卡尔积操作,并尽可能优化查询语句以减少数据组合的数量。合理选择索引、添加适当的连接条件、分页查询、使用临时表等方法都可以帮助解决大型笛卡尔积带来的性能问题。

总之,具体的限制值是主观的,并且需要根据具体情况进行评估。通过合理的设计、优化和使用适当的技术手段,可以有效地管理和减少笛卡尔积带来的性能影响。

暂无图片 评论
暂无图片 有用 5
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
MySQL中如何控制heap表的最大尺寸?
回答 1
已采纳
heap表即MEMORY存储引擎提供的“内存中”的表。heap表的大小可通过参数maxheaptablesize来控制。
怎么把MySQL的空值和null全都查出来?
回答 2
测试用例:createtablet(aint,bvarchar(2));insertt(a)values(1);insertt(a,b)values(2,'');insertt(a,b)values(
mysql IO性能到达瓶颈,不考虑sql优化方面外,从mysql参数入手,有哪几个参数可以调整优化?
回答 2
已采纳
这种情况我们通常建议还是优化。不优化只能提升硬件IO了。参数你看看这个。前提是硬件支持的https://mp.weixin.qq.com/s/neo2qi3XcsAWqk9qc3XOg但是这一切都不如
如何创建 MySQL 分层递归查询?
回答 2
8.0有了公用表达式,递归就简单了好多好多。比如你上面这个假设表为TWITHRECURSIVECTEAS(SELECTFROMTWHEREID19UNIONALLSELECTT.FROMTINNERJ
mysql 忽略大小写,除了改配置文件lower_case_table_names 参数,还有没有其他方法?
回答 1
已采纳
在建表是指定BINARY属性就会区分大小写查询语句的时候,用bin转换也会强制区分大小写selectfromtwherebin(fieldname)‘ABC’
弱弱的请教, mysql 5.6.46,如何查看分配mysql实例内存大小?
回答 2
已采纳
全局共享内存9个变量showvariableslike‘innodbbufferpoolsize’;/InnoDB数据和索引缓存(InnoDBBufferPool)/showvariableslike
在MySQL中以下哪组索引是重复索引?
回答 7
已采纳
以相同的顺序不同的索引名称建立了多套一模一样的联合索引(单值索引也有,不过相对来说没那么奇葩做这种事)……D
mysql锁等待
回答 6
关联一下语句看看行不行,以下3张表5.6都应该存在的selectd.trxstarted,a.THREADID,b.PROCESSLISTID,a.SQLTEXTfromperformancesche
mysql的innodb通过nextkey lock解决了幻读,为什么还说默认隔离级别是可重复读?
回答 2
已采纳
一个事务中,select是快照读,也是可重复读,每次查询的结果相同,但是update,insert,delete是当前读,会导致幻读(即你select出一条值为1的数据,你根据这个条件去更新,但是却更
mysql自增,如果id要从1开始要怎么设置?
回答 2
truncatetable后id就会回到1