中易网

sql中我创建了索引,但是速度一点也没改变

答案:2  悬赏:10  
解决时间 2021-04-27 16:41
  • 提问者网友:房东的猫
  • 2021-04-27 12:33
我自己写了个表test2,有id 和address两个字段,里面address得记录都是重复得,我做测试用,都是复制得。
建立索引
create index ts_index on test2(address)
删除索引
DROp INDEX test2.ts_index
查询
declare @d datetime
set @d=getdate()
select address from test2
where address like '我的%'

select [语句执行花费时间(毫秒)]=datediff(ms,@d,getdate())

这样执行完后,加索引得时间和不加索引得时间 是相同得,
我看执行计划里 也没有执行索引,
请问是哪得问题啊??

我现在把表的数据改了,没有多少重复的了,我不加索引查询的时候,第一次查询用了233毫秒,我在点一次执行,就变成46了,然后我加索引,第一次用了66毫秒,我在点一次执行就是46了。
索引是不是在第一次查询的时候比较有用啊
最佳答案
  • 二级知识专家网友:苦柚恕我颓废
  • 2021-04-27 13:56
索引只有当你查询的数据为你表中数据的10%左右,效率才最夹,
而你表中都是重复数据,不管怎么查都是100%的数据量,相当于全表扫描,索引的作用当然体现不出来

而且这个时候全表查询比索引查询的速度还快得多

比如你查询条为 id > x and id< y
在这个条件下的数据为表中数据量10%时,速度比不加索引快

当然你数据量太少是看不出的,搞个万把条玩玩,你就会发现了
全部回答
  • 1楼网友:错过的是遗憾
  • 2021-04-27 15:10
你好! 不是,看你使用什么索引,在默认的时候都会有一个主键的索引,但是这个在保持唯一性的同时会给你提高查询速度。 跟据你的数据结构不通,需要不同的索引 我的回答你还满意吗~~
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息