关于SQL读取数据效率的一点小问题
示例代码如下:
dim ID=request("ID")
语句1: sql=" select * from [Sheet] where ID="&ID&" "
语句2: sql=" select top 1 * from [Sheet] where ID="&ID&" "
--------------------------------
问题1:两个sql语句读取数据的效率有多大差别?
问题2:如果sheet表的数据超过1000万条,两个sql语句读取数据的效率有多大差别?
谢谢!
------解决方案--------------------* 的话一般都走扫描了。 差异就是数据量问题。
效率差不多,时间上完全取决于*的列多少,还有行数。
------解决方案--------------------语句1返回所有符合条件的记录,语句2只返回第一条符合条件的记录,
语句2速度比1要快
------解决方案--------------------语句2只返回一笔,找到一笔,就结束查找,所以比语句1要快
------解决方案--------------------具体情况需要看查询计划 需要看是否利用到索引
如果利用到了 基本都是秒杀。
------解决方案--------------------如果ID为唯一的话,并且在ID上建立了索引,那么第一个比第二个快一点,因为少排次序。但是只有一条返回结果影响不会大,基本上秒杀。
------解决方案--------------------效率取决你是否正确索引,表结构等