这篇主要写写数据库索引的问题。
成都创新互联公司,为您提供成都网站建设公司、成都网站制作公司、网站营销推广、网站开发设计,对服务成都高空作业车租赁等多个行业拥有丰富的网站建设及推广经验。成都创新互联公司网站建设公司成立于2013年,提供专业网站制作报价服务,我们深知市场的竞争激烈,认真对待每位客户,为客户提供赏心悦目的作品。 与客户共同发展进步,是我们永远的责任!起因因为项目中涉及到大量的数据库搜索操作,搜索的语句都较为复杂,涉及多个条件,所以在实际测试的过程中,能够发现每次搜索的时间都比较长,而且CPU占用十分高。
所以,我就在想如何降低搜索时间,保证整个过程耗费资源较小。当时受到高人指点,可以使用数据库索引,我当时就试了一下,发现确实快了很多。
因为不太明白索引的具体原理,所以后面我就花了些时间单独研究了一下如何建立索引。
数据库索引建立首先,要明确一个问题,建立索引是为了什么目的?当然是为了提高sql语句的搜索速度。
那么想要提高速度的sql语句的组成是什么样子的?这个组成主要看where之后的部分,就是搜索的条件,即条件涉及到哪些列。
明确了具体的列后,需要对每列的属性进行了解,即该列包含的不同的值的数量。在行数固定的情况下,这个数量越大,则每个值对应的行数就越小,那么就会方便进行搜索。
这里补充数据库索引建立的一些原理:
create index myindex on mytable (a,b,c)
如建立(a,b,c)三列的索引,这里的顺序不是随机的,就是从左到右的顺序。但是,在where后的列的顺序关系并不会影响使用这个索引,因为数据库底层会对其进行优化。
在数据库中,我们请求建立这样的索引,数据库会优先以最左边的列开始建立,建立的索引组会是:{(a), (a,b), (a,b,c)}。所以,都会以a列作为第一个搜索的列。
回到之前说到的每列包含不同值的数量,如果我们where后就是a,b,c三列,那么可以把包含不同值数量大的列放到最左边,然后递减排序。当然,这是在每列都只匹配一个值的条件下,即"=“匹配,相对而言,”="匹配会比其它方式的筛选更快,建议优先选择。
为什么这样做?因为在索引工作过程中,第一列会优先筛选,在其它条件相同时,该列筛选后的总列数就会更少,那么在这个基础上,继续做后面的筛选工作,可以加快整体的搜索速度。
通过这样的建立方式,可以大大提高搜索的效率,加快搜索过程。
总结本文主要介绍了如何根据sql语句对数据库建立索引提高搜索速度,希望能够帮到有需要的朋友。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
标题名称:数据库索引建立原理中的小细节-创新互联
转载来源:http://scyingshan.cn/article/dgeceg.html