机器情况
p4: 2.4
内存: 1 G
os: windows 2003
数据库: ms sql server 2000
目的: 查询性能测试,比较两种查询的性能

SQL查询效率 step by step

-- setp 1.
-- 建表
create table t_userinfo
(
userid int identity(1,1) primary key nonclustered,
nick varchar(50) not null default '',
classid int not null default 0,
writetime datetime not null default getdate()
)
go

-- 建索引
create clustered index ix_userinfo_classid on t_userinfo(classid)
go

-- step 2.

declare @i int 
declare @k int
declare @nick varchar(10)
set @i = 1
while @i<1000000
begin
set @k = @i % 10
set @nick = convert(varchar,@i)
insert into t_userinfo(nick,classid,writetime) values(@nick,@k,getdate())
set @i = @i + 1
end
-- 耗时 08:27 ,需要耐心等待

-- step 3.
select top 20 userid,nick,classid,writetime from t_userinfo 
where userid not in
(
select top 900000 userid from t_userinfo order by userid asc
)

-- 耗时 8 秒 ,够长的

-- step 4.
select a.userid,b.nick,b.classid,b.writetime from
(
select top 20 a.userid from 
(
select top 900020 userid from t_userinfo order by userid asc
) a order by a.userid desc
) a inner join t_userinfo b on a.userid = b.userid 
order by a.userid asc

-- 耗时 1 秒,太快了吧,不可以思议

-- step 5 where 查询
select top 20 userid,nick,classid,writetime from t_userinfo 
where classid = 1 and userid not in
(
select top 90000 userid from t_userinfo 
where classid = 1
order by userid asc
)
-- 耗时 2 秒

-- step 6 where 查询
select a.userid,b.nick,b.classid,b.writetime from
(
select top 20 a.userid from 
(
select top 900000 userid from t_userinfo
where classid = 1
order by userid asc
) a order by a.userid desc
) a inner join t_userinfo b on a.userid = b.userid 
order by a.userid asc

-- 查询分析器显示不到 1 秒.

查询效率分析:
子查询为确保消除重复值,必须为外部查询的每个结果都处理嵌套查询。在这种情况下可以考虑用联接查询来取代。

如果要用子查询,那就用EXISTS替代IN、用NOT EXISTS替代NOT IN。因为EXISTS引入的子查询只是测试是否存在符合子查询中指定条件的行,效率较高。无论在哪种情况下,NOT IN都是最低效的。因为它对子查询中的表执行了一个全表遍历。

建立合理的索引,避免扫描多余数据,避免表扫描!
几百万条数据,照样几十毫秒完成查询

SQL查询效率:100w数据查询只需要1秒钟相关推荐

  1. mysql查询1万条数据要1秒钟_SQL查询效率:100w数据查询只需要1秒钟

    机器情况 p4: 2.4 内存: 1 G os: windows 2003 数据库: ms sql server 2000 目的: 查询性能测试,比较两种查询的性能 SQL查询效率 step by s ...

  2. SQL操作的组成部分-数据查询

    数据查询 SQL是一种查询功能很强的语言,只要是数据库存在的数据,总能通过适当的方法将它从数据库中查找出来.SQL中的查询语句只有一个:SELECT,它可与其它语句配合完成所有的查询功能.SELECT ...

  3. Sql Server 2005跨数据查询

    在进行Sql Server 2005跨数据库查询时,有时会出现排序规则不一致,且选出来的内容是乱码的问题. 临时解决方法,将一个库中的表中的数据导入到另一个库中,将跨数据库查询变成同数据库查询. 转载 ...

  4. Web前端工作笔记002---json数据查询的方法_json查询大全,JsonSQL数据查询,jfunk数据查询

    JAVA技术交流QQ群:170933152 json数据查询的方法 网上看到有一篇帖子,有8种json数据查询的方法,大家可以研究一下,我现在分享一下! JsonSQL JsonSQL实现了使用SQL ...

  5. join和子查询效率_SparkSQL连接查询中的谓词下推处理(上)

    SparkSQL是架构在 Spark 计算框架之上的分布式 Sql 引擎,使用 DataFrame 和 DataSet 承载结构化和半结构化数据来实现数据复杂查询处理,提供的 DSL可以直接使用 sc ...

  6. db2嵌套查询效率_嵌套查询与连接查询的性能

    嵌套查询与连接查询的性能:连接查询一般较快:子查询很难被优化.(当然和DB优化有关,也可能子查询比连接查询快)其实不能一概而论的~~ 不过,问了下DBA同学,他建议是能用join的,尽量不要用嵌套查询 ...

  7. mysql嵌套查询效率低,连接查询代替嵌套查询提高select效率

    当数据库中含有大量数据时,而我们所需要的信息不再是仅仅局限于一个表中的数据信息,这时我们需要将对一个表进行信息查询转而变成对多个表进行信息搜索并进行组合. 解决这样的问题我们通常是运用嵌套查询的方法, ...

  8. mysql离散查询_mySQL数据库数据查询操作详解

    查询数据: 简单查询: 1.查询所有数据: select * from 表名 #select * from info 查询所有列 2.查询指定列: select code,name from info ...

  9. C# 连接SQL Sever 数据库与数据查询实例 数据仓库

    大数据时代在编程可能需要用到一些文本内容,不可能全部写到代码里,不好更改,用户也不方便使用 所以需要用到我们的数据库来保存这些数据,直接更改数据 SQL: 下载地址:https://www.micro ...

最新文章

  1. 第一家公立大学支持比特币支付学费
  2. Common Lisp 操作Mysql
  3. 音视频技术开发周刊 91期
  4. python numpy矩阵乘法_高维Python-Numpy矩阵乘法
  5. Java高并发编程详解系列-深入理解Thread构造
  6. one_code=soup.find('a',href=re.compile(rill)) NameError: name 're' is not defined
  7. GameObject.Find() 和 Transform.Find()的区别
  8. 短视频源码下载、vue+html+elementui短视频播放实现,web、pc静态页短视频、手机网页版短视频
  9. 手机点餐系统概述_餐馆点菜系统概要设计
  10. EXCEL中的定位条件(含快速删除空行,定位图片、文本框等对象)
  11. 京东商品图片 自动下载 抓取 c# 爬虫
  12. Unity 5.5.0f3发行说明
  13. 图片与文字排版-flex
  14. android KK上,前摄,对于normal、zsd、facebeauty拍照,实现mirror
  15. 浏览器插件沙拉查词无法正常翻译,配置词典
  16. ChatGPT不到1分钟生成全部代码,你就说慌不慌吧?
  17. 澳洲色情网浏览人数创新高 涉嫌破坏两性关系
  18. Mybatis调用PostgreSQL存储过程实现数组入参传递
  19. Cool JavaScript Tricks
  20. Vscode突然没法调试python2.7

热门文章

  1. pycharm与github相配置连接(上传、删除、更新项目)
  2. java list set map的区别_Java集合类List/Set/Map的区别和联系
  3. Window下yolov3的配置教程
  4. 第四范式先知(Sage)率先通过欧盟GDPR认证
  5. access开发精要(12)-文本 和 备注 数据类型格式(1)
  6. (视频+图文)机器学习入门系列-第3章 逻辑回归
  7. 【数据分析】Python数据分析学习路线个人总结
  8. 个人对北理工2020级硕士研究生张××一篇学术论文涉嫌抄袭的看法
  9. 【Python】30天进阶Python!这个Github项目你值得拥有!
  10. GPU算力免费用?百度AI Studio两周年惊喜活动开启