菜鸟请教两个表连接起来查询,哪种连接效率高?

时间:2022-03-21 04:20:09
我有两张表 a有一万条记录,b有五十万条记录。a b 有公用字段,根据a中的数据查出b中相应的数据,应该用什么连接方式?

9 个解决方案

#1


left join 

1、主要字段要加上索引
2、查询的时候应该是有条件的吧?最好加上where 条件

#2


引用楼主 zhaodong0120 的回复:
我有两张表 a有一万条记录,b有五十万条记录。a b 有公用字段,根据a中的数据查出b中相应的数据,应该用什么连接方式?

1.用内连接即可.
2.对共用字段建立上索引.

#3


用内连接

#4


我试了一下,耗时将近6分钟呢,是不是太慢了?理想的情况会是多少?

#5


建索引

#6


1.连接条件字段建立索引
2.避免select *
3.建立连接条件,避免数据量过大

#7


恩我建了索引,没有select * ,只select了2个字段
耗时将近6分钟。。。是不是太慢?还是数据多了这样的耗时算正常?

#8


引用 7 楼 zhaodong0120 的回复:
恩我建了索引,没有select * ,只select了2个字段
耗时将近6分钟。。。是不是太慢?还是数据多了这样的耗时算正常?


select 2个字段,然后join字段上建立了索引,如果索引生效了,还是6分钟的话,你就要考虑一下:
1.尝试加入 with (nolock)
如果索引失效,考虑一下:
1.条件连接的字段类型是否一致?
2.这个失效的索引是否是堆上的非聚集索引?

#9


不正常,只是简单的连接查询几秒钟就行

#1


left join 

1、主要字段要加上索引
2、查询的时候应该是有条件的吧?最好加上where 条件

#2


引用楼主 zhaodong0120 的回复:
我有两张表 a有一万条记录,b有五十万条记录。a b 有公用字段,根据a中的数据查出b中相应的数据,应该用什么连接方式?

1.用内连接即可.
2.对共用字段建立上索引.

#3


用内连接

#4


我试了一下,耗时将近6分钟呢,是不是太慢了?理想的情况会是多少?

#5


建索引

#6


1.连接条件字段建立索引
2.避免select *
3.建立连接条件,避免数据量过大

#7


恩我建了索引,没有select * ,只select了2个字段
耗时将近6分钟。。。是不是太慢?还是数据多了这样的耗时算正常?

#8


引用 7 楼 zhaodong0120 的回复:
恩我建了索引,没有select * ,只select了2个字段
耗时将近6分钟。。。是不是太慢?还是数据多了这样的耗时算正常?


select 2个字段,然后join字段上建立了索引,如果索引生效了,还是6分钟的话,你就要考虑一下:
1.尝试加入 with (nolock)
如果索引失效,考虑一下:
1.条件连接的字段类型是否一致?
2.这个失效的索引是否是堆上的非聚集索引?

#9


不正常,只是简单的连接查询几秒钟就行