当前位置: 首页 > news >正文

上海市网站建设_网站建设公司_需求分析_seo优化

做网站需要的硬件,西安中高风险地区查询,wordpress中文优化版,电商平台怎么注册概要什么是单一索引,什么又是复合索引呢? 何时新建复合索引#xff0c;复合索引又需要注意些什么呢#xff1f;本篇文章主要是对网上一些讨论的总结。一.概念单一索引是指索引列为一列的情况,即新建索引的语句只实施在一列上。用户可以在多个列上建立索引#xff0c;这种索… 概要什么是单一索引,什么又是复合索引呢? 何时新建复合索引复合索引又需要注意些什么呢本篇文章主要是对网上一些讨论的总结。一.概念单一索引是指索引列为一列的情况,即新建索引的语句只实施在一列上。用户可以在多个列上建立索引这种索引叫做复合索引(组合索引)。复合索引的创建方法与创建单一索引的方法完全一样。但复合索引在数据库操作期间所需的开销更小可以代替多个单一索引。当表的行数远远大于索引键的数目时使用这种方式可以明显加快表的查询速度。同时有两个概念叫做窄索引和宽索引窄索引是指索引列为1-2列的索引,如果不特殊说明的话一般是指单一索引。宽索引也就是索引列超过2列的索引。设计索引的一个重要原则就是能用窄索引不用宽索引因为窄索引往往比组合索引更有效。拥有更多的窄索引将给优化程序提供更多的选择余地这通常有助于提高性能。二.使用创建索引 create index idx1 on table1(col1,col2,col3)  查询select * from table1 where col1 A and col2 B and col3 C这时候查询优化器不在扫描表了而是直接的从索引中拿数据因为索引中有这些数据这叫覆盖式查询这样的查询速度非常快。   三.注意事项1.何时是用复合索引在where条件中字段用索引如果用多字段就用复合索引。一般在select的字段不要建什么索引(如果是要查询select col1 ,col2, col3 from mytable,就不需要上面的索引了)。根据where条件建索引是极其重要的一个原则。注意不要过多用索引否则对表更新的效率有很大的影响因为在操作表的时候要化大量时间花在创建索引中.2.对于复合索引在查询使用时最好将条件顺序按找索引的顺序这样效率最高。如    IDX1:create   index   idx1   on   table1(col2,col3,col5)    select   *   from   table1   where   col2A   and   col3B   and   col5D  如果是select   *   from   table1   where   col3B   and   col2A   and   col5D或者是select   *   from   table1   where   col3B将不会使用索引或者效果不明显3.复合索引会替代单一索引么?很多人认为只要把任何字段加进聚集索引就能提高查询速度也有人感到迷惑如果把复合的聚集索引字段分开查询那么查询速度会减慢吗带着这个问题我们来看一下以下的查询速度结果集都是25万条数据日期列fariqi首先排在复合聚集索引的起始列用户名neibuyonghu排在后列IDX1:create   index   idx1   on   Tgongwen(fariqi,neibuyonghu)  1select gid,fariqi,neibuyonghu,title from Tgongwenwhere fariqi2004-5-5查询速度2513毫秒2select gid,fariqi,neibuyonghu,title from Tgongwenwhere fariqi2004-5-5 and neibuyonghu办公室查询速度2516毫秒3select gid,fariqi,neibuyonghu,title from Tgongwenwhere neibuyonghu办公室查询速度60280毫秒从以上试验中我们可以看到如果仅用聚集索引的起始列作为查询条件和同时用到复合聚集索引的全部列的查询速度是几乎一样的甚至比用上全部的复合索引列还要略快在查询结果集数目一样的情况下而如果仅用复合聚集索引的非起始列作为查询条件的话这个索引是不起任何作用的。当然语句1、2的查询速度一样是因为查询的条目数一样如果复合索引的所有列都用上而且查询结果少的话这样就会形成“索引覆盖”因而性能可以达到最优。同时请记住无论您是否经常使用聚合索引的其他列但其前导列一定要是使用最频繁的列。[参考: 查询优化及分页算法方案 http://blog.csdn.net/chiefsailor/archive/2007/05/28/1628339.aspx]4.需要在同一列上同时建单一索引和复合索引么?试验: sysbase   5.0   表table1   字段col1,col2,col3  试验步骤  1建立索引idx1   on   col1    执行select   *   from   table1   where   col1A     使用idx1    执行select   *   from   table1   where   col1A   and   col2B   也使用idx1  2删除索引idx1,然后建立idx2   on   (col1,col2)复合索引    执行以上两个查询也都使用idx2  3如果两个索引idx1,idx2都存在    并不是   where   col1A用idx1where   col1A   and   col2B  用idx2。    其查询优化器使用其中一个以前常用索引。要么都用idx1,要么都用idx2.     由此可见1对一张表来说如果有一个复合索引 on   (col1,col2)就没有必要同时建立一个单索引 on col1。2如果查询条件需要可以在已有单索引 on col1的情况下添加复合索引on   (col1,col2)对于效率有一定的提高。3同时建立多字段(包含5、6个字段)的复合索引没有特别多的好处相对而言建立多个窄字段(仅包含一个或顶多2个字段)的索引可以达到更好的效率和灵活性。5. 一定需要覆盖性查询么通常最好不要采用一个强调完全覆盖查询的策略。如果Select子句中的所有列都被一个非群集索引覆盖优化程序会识别出这一点并提供很好的性能。不过这通常会导致索引过宽并会过度依赖于优化程序使用该策略的可能性。通常是用数量更多的窄索引这对于大量查询来说可以提供更好的性能。 转载于:https://www.cnblogs.com/firstdream/p/7241368.html
http://www.ihoyoo.com/news/64786.html

相关文章:

  • 手机网站拦截怎么解除车票制作图片的软件
  • 网站做3年3年包括什么软件怎么盗号网站怎么做
  • 哪个网站做图找图片一个小程序开发多少钱
  • 如何建设考研网站加强人社局网站建设
  • 怀化公积金网站创意网站页面设计
  • 正定网站建设制作公司国际论坛网站模板
  • 搭建网站程序装修公司怎么找客源最有效
  • 做网站 怎么备案怎样建立公司网页
  • 长沙建设教育网站有什么推荐做简历的网站
  • 建网站哪家划算网站制作 江西
  • 静态网站制作视频专业网页制作需要注意哪些问题
  • thinkphp做的网站怎么打开网络营销的营销理念
  • 知名网站建设公司排名兰州做网站改版的公司
  • 丹阳网站建设哪家好世界工厂
  • 合肥建设网络网站网站做网站汉狮网络
  • wap网站 趋势分析山东城乡建设部网站首页
  • 合肥建站公司seo论文网站建设的参考文献
  • 网站对联图片国外网站会让国内人做吗
  • 做恐怖网站自己做视频网站能赚钱
  • 最适合seo的网站源码网站方案策划
  • 建个购物网站wordpress缩写是什么意思
  • 古风网站的关于我们页面怎么做python 网站开发 环境
  • 做儿童网站赚钱吗手机版wordpress使用
  • 保定网站建设公司免费网络营销公司哪家好
  • 外贸网站域名用境内还是境外上海建设资质审批网站
  • 怎么做交易猫钓鱼网站无锡网站推
  • 建一个国外网站多少钱网站搭建好了不用会不会被攻击
  • 公司网站可以自己做吗wordpress 整合ucenter
  • react做的电商网站能上线吗用vs2010做购物网站
  • php外贸网站制作信誉好的永州网站建设