数据库操作--创建索引

前段时间接到个任务,要在两秒内从1000万条数据中查询某一条数据是否存在。着实吓我一跳。1000万条数据!两秒!真的可以么?幸好师傅给指了条明路。可以考虑用表分区来实现。虽然不知道表分区是什么,但是最起码有一个方向了。然后就开始在网上搜索表分区的资料,看了看网上的资料,差不多都是一些建表分区的教程。但是我要建立的表分区和例子上又不一样,需要动态的建立表分区,这就难了。搞了半天没搞好。后来想起来春哥和游哥提到过以前他们在对数据库搜索数据的很慢,然后在数据库中加了索引以后,搜索提升了好几倍。

好,那就看看索引吧。先是根据数据格式造了1000万条假数据。然后开始建立表索引。

第一步,在表下面的“索引”右击选择 “新建索引”,然后根据自己的需要建立相应的索引。

技术分享

第二步,更改索引名称,选择需要加索引的字段

技术分享

第三步,根据需要选择字段

技术分享

第四步,确定添加索引

技术分享

好了,索引创建好了。

下面来看看加上索引和不加索引搜索速度的对比

没有加索引检索全表的速度为5秒

技术分享

加上索引后检索全表的速度为0.363秒

技术分享

在学习数据库的时候就知道有索引,而且索引分为聚集索引和非聚集索引。那么,索引到底是什么呢?

拿字典举例子吧:字典前面的目录,可以按照拼音和部首去查询。我们想查询一个字,只需要根据拼音或部首查询就可以快速找到要查的这个汉字了。那么,字典的目录就是索引。拼音查询法就是聚集索引,部首查询发就是非聚集索引。

看了上面的例子,下面的话就很容易理解了。

聚集搜索引存储记录是物理上连续存在,而非聚集索引是逻辑上的连续,物理存储并不连续。就像字段,聚集索引是连续的,a后面肯定是b。而非聚集索引就不一定了。

 

对索引的了解暂时就这么多,很浅。要想真正的学精,以后还要不断的加深学习。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。