join on关联表的数据很大或join on关联表好几个---这样会很慢~希望大家发表自己解决办法,帮帮小弟
解决方案 »
- 效率问题:插入重复主键记录和先查询是否重复再插入,哪个效率高??
- 初学,请教一个SQL简单问题
- sql里面可以存html标签吗?
- 如何通过一条SQL语句查询自已未查看过的信息?
- 求分组拼串及动态行转列的综合查询?
- The conversion of a char data type to a datetime data type resulted in an out-of-range datetime valu
- 这个存储过程问题在哪里?
- 高分,求一将多个表并在一起的SQL语句
- 我的SQL SERVER为什么装上总是不能用? 急人啊!
- 关于系统设计
- access更新问题
- 求助:身份证15位转18位的SQL语句该如何写?
2#SQL语句优化,加索引等
3#有复合索引,where条件后按顺序写条件。
还有种条件:就是比如说主表是A表(Aid,Bid,Aname,)副表是B表(Bid,Bname,)
首先根据 建临时表 检索B表select Bid,name from B where Bid in (select Bid from A where 输入的条件)
select * from A left join 临时表 on Bid
这样好像也慢,为什么慢不明白道理~?
帮忙解释下,再说下好的办法!谢过!!!
#2. 字段加索引, where条件时要用到索引
#3. 分页
记得在什么地方看到on的执行顺序早于where,于是推断能放在on后面的最后放在on后面
这个索引无效 可以考虑其他的方式
造成检索的次数就N*M*J*K...次了
查询语句设计的数据量大,最好能不用in就不要用in。
--select Bid,name from B where Bid in (select Bid from A where 输入的条件)
--这样写
select B.Bid, B.name from B, A where A条件 and A.Bid = B.Bid
不要临时表【建临时表 检索B表select Bid,name from B where Bid in (select Bid from A where 输入的条件)】直接select 。。 from A left join (写一个结果集?) on Bid=Bid
这样可以吗?这办法没有用到in,这样可以吗?结果集怎么写呢?