易截截图软件、单文件、免安装、纯绿色、仅160KB

大家都来讨论一下 SQL 语句的执行效率问题

如 数据库 t 中 有 两个表 A 和 B

表 A 中 有 60 列 分别定义为 a1,a2,a3.......a60 共有20万条数据
表 B 中 有 90 列 分别定义 为 b1,b3,b3.......b90 共有 10 多万条数据


现在 写 SQL 来查询满足条件的字段
方法1:
Select
a1
a2
a3
a4
a5
a6
b7
b8
b9
b10
b11
……..
from A,B
where A.a1=B.b1

方法2:
Select
a1
a2
a3
a4
a5
a6
(select b7 from B where A.a1=B.b1)
(select b8 from B where A.a1=B.b1)
(select b9 from B where A.a1=B.b1)
(select b10 from B where A.a1=B.b1)
(select b11 from B where A.a1=B.b1)
……..
from A

这两种方法 哪种效率高呢?怎么来验证?最好有实验数据。

第一种效率高,毫无疑问,第一种查询方式扫描表一次,第二种则N次.

第一种~!

to: htl258
第二种方法 每次扫描表 和第一种方法扫描表 相同吗?

第一种的效率会高出很多
而且第一种还很好加索引
第2种属于嵌套 每一个嵌套就会扫描表一次

第一种方法只扫描一次

第一种能高效一些.
如果要比较结果那么可以每次执行时附加运行计划,看看那个能更搞笑.

各位

如果 有 A B C D 四个表 或 更多,如果 采用第一种方法 效率还会比第二种高吗?

第二个是子查询
所谓这种在显示列上的子查询,,,可是
显示一行,,查询一次,,一个字段查询一次,,,

人家第一个,是连接两表,然后显示,,,,

没有可比性哈

第一种效率高
第二


相关问答:

sql性能求助 - MS-SQL Server / 疑难问题

场景如下:
客户把备份好的数据库,发给我,我在本机还原后,运行写好的存储过程,比较快,并且在实施那边运行同样比较快。但是当实施在客户那边运行的时候速度就非常的慢,时间超出了程序的时间限制。远程在客户那 ......

SQL如何优化问题 - MS-SQL Server / 疑难问题

今天做了一个存储过程   环境是SQL2000数据库  
大致如下
建立临时表
定义员工游标
        循环员工(属于1个公司)  
        ......

求一sql语句 - MS-SQL Server / 疑难问题

现在有两张表:文章主表A(articleId,articleTitle),文章评论表B(commentId,articleId,commentTitle)
现在我想实现这样的功能:列出文章列表,其中每篇文章标题下面列出此文章的前2个文章评论,请问sql语句怎么写啊 ......

求一sql语句 - MS-SQL Server / 基础类


id bh  
1 10
2 11
3 12 
4 15
5 16
6 22
7 25
8 26
9 27
10 28
将bh按连续分段出来返回字符串:
10~12,15~16,22,25~28
SQL code:


declare @t tabl ......

如何使用MySQL - MS-SQL Server / 基础类

刚刚接触MySQL,不知道该如何去查看数据,插入数据,创建数据库、表,用哪为前辈能指教一二?

MySQL 5.1参考手册

引用
兄弟你会结贴吗?
mysql 参考手册

baidu

MySQL官方文档 http://dev.mysql.com/doc ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号