社区
MS-SQL Server
帖子详情
从同一个表select ,记录少的为什么反而比记录多的慢?where 条件相同,只是范围大小有区别
心念不空过
2006-01-05 03:04:04
select * from test8
where tdate>'20000701' and tdate<='20040502'
select * from test8
where tdate>'19980701' and tdate<='20040502'
第二个查询反而快!(百万数量级条记录)
表test8在tdate上建了索引
...全文
110
6
打赏
收藏
从同一个表select ,记录少的为什么反而比记录多的慢?where 条件相同,只是范围大小有区别
select * from test8 where tdate>'20000701' and tdate'19980701' and tdate<='20040502' 第二个查询反而快!(百万数量级条记录) 表test8在tdate上建了索引
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lsqkeke
2006-01-05
打赏
举报
回复
呵呵 :)
javanow
2006-01-05
打赏
举报
回复
分别选中这2条sql语句,看看执行计划
可能的情况
1:你先执行第一条,数据读内存了,然后执行第二条语句,因为大部分数据在内在中,因此反而更快。此时你执行第一条,肯定会快过第二条。
2:某些情况下全表扫描确实比索引扫描更快。
------------------------
http://chinadba.cn
深圳骄子数据库服务网
最专业的数据库优化、管理、设计、培训网
diepig925
2006-01-05
打赏
举报
回复
我想是你的索引有问题了,建议你重建索引.
DBCC DBREINDEX(test8)可能会得到你要的效果!
zlp321002
2006-01-05
打赏
举报
回复
--你的字段要建聚集索引。
lw1a2
2006-01-05
打赏
举报
回复
什么类型的索引?
zlp321002
2006-01-05
打赏
举报
回复
--建普通索引
create index 索引名称 on 表名(字段)
--建聚集索引
create clustered index 索引名称 on 表名(字段)
--建非聚集索引
create NONCLUSTERED index 索引名称 on 表名(字段)
select * from test8(index =索引名)
where tdate>'20000701' and tdate<='20040502'
select * from test8(index =索引名)
where tdate>'19980701' and tdate<='20040502'
--然后比较下速度情况。
MySQL 四类管理日志(详解及高阶配置)
Re:MySQL 四类管理日志(详解及高阶配置) ===========================# 日志分类 1) 二进制日志:
记录
所有更改数据的语句,同时用于数据复制(增量备份或逻辑备份)。 2) 错误日志 :
记录
MySQL 服务的启动、运行或停止 MySQL 服务时出现的问题。 3) 查询日志 :
记录
建立的客户端连接和执行的语句(
记录
SELECT
语句)。 4)
慢
查询日志:
记录
所有执行时间超过指定秒或不使用索引的查询。 # 更改数据的语句 1) DDL 语句和 DML 语句对数据库的更改操作 2) DDL 语言:创建;删除;修改;对象(
表
,视图,存储过程,函数) 3) DML 语言:增删改查,但二进制日志中只
记录
“增删改”,不
记录
查, 因为查不修改数据库本身,查将
记录
在查询日志,
慢
查询日志中----------------------------------------------------------------------------------------------------
in为什么
慢
IN为什么
慢
? 在应用程序中使用子查询后,SQL语句的查询性能变得非常糟糕。例如:
SELECT
driver_id FROM driver where driver_id in (
SELECT
driver_id FROM driver where _create_date > ‘2016-07-25 00:00:00’); 独立子查询返回了符合
条件
的driver_id,这个问题是解决了,但是所用的时间需要6秒,可以通过EXPLAIN查看SQL语句的执行计划:  可以看到上面的SQL语句变成了相关
Mysql 如果有多个可选
条件
怎么加索引_MySQL|mysql-索引
1、索引是什么 1.1索引简介 索引是
表
的目录,是数据库中专门用于帮助用户快速查询数据的一种数据结构。类似于字典中的目录,查找字典内容时可以根据目录查找到数据的存放位置,以及快速定位查询数据。对于索引,会保存在额外的文件中。 1.2主要注意的地方: (1).索引可以提高查询速度,会减
慢
写入速度,索引的缺点时创建和维护索引需要耗费时间。 (2).索引并不是越多越好,索引固然可以提高相应的
select
的效率,但同时也降低了insert及update的效率,因为insert或update是有可能会重建索引。 1.
SQL Server查询优化方法(查询速度
慢
的原因很多,常见如下几种)
在开发的朋友特别是和mysql有接触的朋友会碰到有时mysql查询很
慢
,当然我指的是大数据量百万千万级了,不是几十条了,下面我们来看看解决查询
慢
的办法。 MySQL查询优化:查询
慢
原因和解决方法 会经常发现开发人员查一下没用索引的语句或者没有limit n的语句,这些没语句会对数据库造成很大的影响,例如一个几千万条
记录
的大
表
要全部扫描,或者是不停的做filesort,对数据库和服务
server sql top速度变
慢
解决方案_SQL性能优化方案
多看,多用,多积累1、能减
少
表
连接就减
少
连接2、数据列比较多时,
select
查询具体的字段,
少
用 ,3、避免不必要的查询,能查询一个解决的绝不查询多个 top代替count()4、能不分组就不分组order by5、大数据别嵌套子查询
select
... from
select
...6、很多时候用 exists 代替 in 是一个好的选择:
select
num from a where num ...
MS-SQL Server
34,590
社区成员
254,589
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章