社区
MS-SQL Server
帖子详情
建索引后查询速度没有提高
clxy520
2012-09-26 09:52:08
我一张表 有50W的数据 表结构也很简单,我现在在时间字段上加上索引然后进行查询
select * from news 时间为8秒
select * from news order by news_time 时间也是8秒
把索引删除后搜索
select * from news order by news_time 还是8秒
到底是什么问题?
...全文
492
55
打赏
收藏
建索引后查询速度没有提高
我一张表 有50W的数据 表结构也很简单,我现在在时间字段上加上索引然后进行查询 select * from news 时间为8秒 select * from news order by news_time 时间也是8秒 把索引删除后搜索 select * from news order by news_time 还是8秒 到底是什么问题?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
55 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
DBA_磊仔
2012-09-27
打赏
举报
回复
[Quote=引用 33 楼 的回复:]
这就证明走了索引了,写着【聚集索引查找】。另外我想请教一下怎么传图?我没弄过,按照你这个查询,好像已经是极限了。
[/Quote]建了聚集索引的表实际上已经不存在表了,只存在聚集索引,所以不论强不强制,都会走这个索引,是扫描还是查找,不是那个hint语句能决定的。我看他执行计划的箭头比较宽,应该还是数据选择性不够,所以速度还是会有点慢,但是也是极限了。
另外,每次测试都需要清空缓存。Lz前面的测试数据很奇怪,大概就是没有清空缓存的结果。有经验说从缓存读数的速度是通过IO读数速度的50倍,所以,这个聚集索引带给你的性能差异就很难察觉了,这时候要通过
set statistics IO on 来查看IO的开销
南冰
2012-09-27
打赏
举报
回复
select * 是全表扫描,用不到索引的
guostong
2012-09-27
打赏
举报
回复
没有 where 条件就不会使用索引
ttpsan550
2012-09-26
打赏
举报
回复
我在自己的一个70W行的表里 通过聚集索引 检索出 1W条记录 只要不到1S的时间(跟机器配置有关),搞不懂你这个是怎么回事,你把表的脚本全部 发出来看看呢。 还有 执行下 统计信息然后再查查看 UPDATE STATISTICS news
DBA_磊仔
2012-09-26
打赏
举报
回复
[Quote=引用 7 楼 的回复:]
引用 4 楼 的回复:
建立索引 那要看你的选择度高不高啊,如果 大于 '2011-09-26 09:41:58.120'这个数据有几十万 那这个索引也就没作用了吧
建立 索引不就是为了 查询海量数据的时候 提高查询速度吗?我有点不太理解了
[/Quote]错,索引在海量数据里查找少量数据是有用的,还有在Group by 、order by 时聚集索引是有用的,在海量数据里查找海量数据,索引是无力的
clxy520
2012-09-26
打赏
举报
回复
[Quote=引用 20 楼 的回复:]
50w查出9690算是可以的拉,你看看执行计划是用了表扫描还是聚集索引查找?
[/Quote]
不太懂?怎么看
發糞塗牆
2012-09-26
打赏
举报
回复
50w查出9690算是可以的拉,你看看执行计划是用了表扫描还是聚集索引查找?
clxy520
2012-09-26
打赏
举报
回复
或者 能给我说说 怎么建个测试表,来测试 索引带来查询速度的提高
chesterfeng
2012-09-26
打赏
举报
回复
运行的时候选择现实执行计划,看看不就知道了吗,我X
clxy520
2012-09-26
打赏
举报
回复
[Quote=引用 15 楼 的回复:]
select count(1) from news where news_time>'2011-09-26 09:41:58.120' 执行一下,看看有多少数据
[/Quote]
9690条
ttpsan550
2012-09-26
打赏
举报
回复
UPDATE STATISTICS news --更新下统计信息试试看呢
發糞塗牆
2012-09-26
打赏
举报
回复
select count(1) from news where news_time>'2011-09-26 09:41:58.120' 执行一下,看看有多少数据
clxy520
2012-09-26
打赏
举报
回复
[Quote=引用 13 楼 的回复:]
引用 12 楼 的回复:
引用 11 楼 的回复:
能不能贴个表和索引的创建, 才能具体分析,按你说的 应该不太可能。
表
索引
竟然是图片?
[/Quote]
??????
ttpsan550
2012-09-26
打赏
举报
回复
[Quote=引用 12 楼 的回复:]
引用 11 楼 的回复:
能不能贴个表和索引的创建, 才能具体分析,按你说的 应该不太可能。
表
索引
[/Quote]
竟然是图片?
clxy520
2012-09-26
打赏
举报
回复
[Quote=引用 11 楼 的回复:]
能不能贴个表和索引的创建, 才能具体分析,按你说的 应该不太可能。
[/Quote]
表
索引
ttpsan550
2012-09-26
打赏
举报
回复
能不能贴个表和索引的创建, 才能具体分析,按你说的 应该不太可能。
clxy520
2012-09-26
打赏
举报
回复
[Quote=引用 9 楼 的回复:]
引用 8 楼 的回复:
引用 4 楼 的回复:
建立索引 那要看你的选择度高不高啊,如果 大于 '2011-09-26 09:41:58.120'这个数据有几十万 那这个索引也就没作用了吧
按你说的 我把查询条件修改以后 查询出几千条 所用时间还是一样 建不建索引没区别呀
你总数据量是多少 如果总数据量只有1W多条 然后查出的结果有几千条 这样的话 索引的消耗成本比普通查询的成……
[/Quote]
总数量 50多W 的数据啊
--小F--
2012-09-26
打赏
举报
回复
[Quote=引用 8 楼 的回复:]
引用 4 楼 的回复:
建立索引 那要看你的选择度高不高啊,如果 大于 '2011-09-26 09:41:58.120'这个数据有几十万 那这个索引也就没作用了吧
按你说的 我把查询条件修改以后 查询出几千条 所用时间还是一样 建不建索引没区别呀
[/Quote]
你总数据量是多少 如果总数据量只有1W多条 然后查出的结果有几千条 这样的话 索引的消耗成本比普通查询的成本还高 索引就基本没什么用了
clxy520
2012-09-26
打赏
举报
回复
[Quote=引用 4 楼 的回复:]
建立索引 那要看你的选择度高不高啊,如果 大于 '2011-09-26 09:41:58.120'这个数据有几十万 那这个索引也就没作用了吧
[/Quote]
按你说的 我把查询条件修改以后 查询出几千条 所用时间还是一样 建不建索引没区别呀
clxy520
2012-09-26
打赏
举报
回复
[Quote=引用 4 楼 的回复:]
建立索引 那要看你的选择度高不高啊,如果 大于 '2011-09-26 09:41:58.120'这个数据有几十万 那这个索引也就没作用了吧
[/Quote]
建立 索引不就是为了 查询海量数据的时候 提高查询速度吗?我有点不太理解了
加载更多回复(35)
Tianlesoftware Oracle 学习手册(v1.0)高清完整PDF版
Tianlesoftware Oracle 学习手册(v1.0)
lucene-4.6.0全套jar包
Lucene
索引
工具全套jar包,版本4.6.0
如何使用
索引
提高
查询
速度
使用
索引
提高
查询
速度
1.前言 在web开发中,页面模板,业务逻辑(包括缓存、连接池)和数据库这三个部分,数据库在其中负责执行SQL
查询
并返回
查询
结果,是影响网站
速度
最重要的性能瓶颈。本文主要针对MySql数据库,双十一的电商大战,引发了淘宝技术热议,而淘宝现在去IOE(I代表IBM的缩写,即去IBM的存储设备和小型机;O是代表Oracle的缩写,也即去Oracle数据库,采用MySQ
MySQL第九讲·
索引
怎么
提高
查询
的
速度
?
索引
可以非常显著的
提高
数据
查询
的
速度
,数据表里包含的数据越多,效果越显著。我们应该选择经常被用做筛选条件的字段来创
建
索引
,这样才能通过
索引
缩小实际读取数据表中数据的范围,发挥出
索引
的优势。如果有多个筛选的字段,而且经常一起出现,也可以用多个字段来创
建
组合
索引
。drop index
索引
名 on 表名;当然, 有的
索引
不能用这种方法删除,比如主键
索引
,我们就必须通过修改表来删除
索引
。alter table 表名 drop primary key;
MySQL学习笔记-
索引
提高
查询
速度
冗余
索引
指的是
索引
的功能相同,能够命中 就肯定能命中 ,那么 就是冗余
索引
如(name,city )和(name )这两个
索引
就是冗余
索引
,能够命中后者的
查询
肯定是能够命中前者的 在大多数情况下,都应该尽量扩展已有的
索引
而不是创
建
新
索引
。这里需要注意的是,
查询
的时候如果两个条件都用上了,但是顺序不同,如 city= xx and name =xx,那么现在的
查询
引擎会自动优化为匹配联合
索引
的顺序,这样是能够命中
索引
的.从所在的页内中查找相应的记录:由于不是根据主键
查询
,只能遍历所在页的单链表了。
MS-SQL Server
34,838
社区成员
254,632
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章