sql加索引和删除索引,提高效率等

来源:互联网 发布:雷蛇鼠标驱动编程 编辑:程序博客网 时间:2024/04/29 08:36


数据库:mssql2008

测试数据量:150万条

添加索引:CREATE INDEX   索引名称    ON  表名(列) WITH(ONLINE=ON)

删除索引:drop index 索引名称  on  表名
查寻索引: select * from sys.indexes where name='索引名称';


公司 里边做了一个项目,起实并没有太过于在意,按照正常的sql写的,但当数据量大之后,问题来了。

最初的时候,用的是阿里云的轻云服务器,当数据到100多万条的时候,速度也还是可以的,但后来随意数据量的增加,轻云服务器只有1g的空间,是不能满意的,后来没有办法更换到阿里云的rds,rds啊,价格好贵的,但效果没有想想的那么好,感觉还不如阿里云自带的,速度那叫慢啊,好神奇的慢,咨询售后,为什么自带数据库比RDS还要快,后来的答案是具体问题具体分析。。,我了个去,不过RDS也有一个好处,就是可以查看那些sql运行的慢。。经过分析,随着数据量的增加,加上索引是比较好的,后来没有办法,加上索引,加上索引后测试SQL   语句确实快了好些倍,如图 :
1.没有加过引之间需要的时间:

2.加过引之间需要的时间:




大家可以做一下对比,这二个图片所用的时间上差别还是蛮大的,效率是不言而明的,但在这里我需要说明的是我只在record_cpmid这个键上加了索引的,联合查询的其它列,并没有加,有网上查了一些文档,说是加过索引之后,添加数据会比较慢,后来,我测试了一下,同时添加1000条的情况下,好象没什么区别,可能是我只添加了一个索引的原因,如果过多的添加,是很可能造成影响数据的添加的。



我想问一下,大家对索引的使用是怎么看的,比如:
1.在添加少量索引的情况下是否影响数据的添加。
2.索引的维护这一块,大家都是怎么理解的。



如果大家对索引这一块,不太明白,可以建立索引后,在查询分析里边试下,看看是不是运行时间有变化



0 0
原创粉丝点击