level 1
假如表A有1.2.3三列,表B有1.2两列
将表AB交叉连接后,系统是首先将A1.A2.A3和B1.B2分别进行交叉后再显示出你要select的数据吗?,这样会不会增加系统的负担
我是说有没有一种语句能将选定的两列数据进行交叉
2023年07月20日 10点07分
1
level 1
是的,会增加系统的负担。
系统会首先将表A的1、2、3列与表B的1、2列进行交叉连接,然后显示出你要选择的数据。这样做确实会增加系统的负担,因为需要进行多次数据连接操作。
2023年09月15日 08点09分
2
level 1
SELECT A.column1, B.column2
FROM tableA AS A
CROSS JOIN tableB AS B;
2023年09月15日 08点09分
3
level 5
假如A表有100列,B表有5列,A、B关联查询,结果集中取A表的3列和B表的5列;然后把A表中除了这3列之外的其他97列全部删除,再次A、B关联查询,结果集中取A表的3列和B表的5列,这2种情况,性能不会有多少区别,这2种情况产生的笛卡尔积是相同的
2023年09月18日 06点09分
4
level 5
但是A表有100列,B表有5列,where条件相同,结果集中取A表100列和取A表5列,性能差异就明显了
性能的具体影响还会受到其他因素的影响,如索引、查询条件的复杂性、数据分布等。
2023年09月18日 06点09分
5