[转]索引的长处和缺陷,怎么树立索引,索引的特征ITeye - 千亿集团

[转]索引的长处和缺陷,怎么树立索引,索引的特征ITeye

2019年02月23日13时24分21秒 | 作者: 慕卉 | 标签: 索引,运用,数据 | 浏览: 2536

为什么要创立索引呢?这是因为,创立索引能够大大进步体系的功能。榜首,经过创立仅有性索引,能够确保数据库表中每一行数据的仅有性。第二,能够大大加速数据的检索速度,这也是创立索引的最主要的原因。第三,能够加速表和表之间的衔接,特别是在完结数据的参阅完整性方面特别有意义。第四,在运用分组和排序子句进行数据检索时,相同能够显着削减查询中分组和排序的时刻。第五,经过运用索引,能够在查询的进程中,运用优化躲藏器,进步体系的功能。
  或许会有人要问:添加索引有如此多的长处,为什么不对表中的每一个列创立一个索引呢?这种主意固然有其合理性,可是也有其片面性。尽管,索引有许多长处,可是,为表中的每一个列都添加索引,是十分不明智的。这是因为,添加索引也有许多晦气的一个方面。榜首,创立索引和保护索引要消耗时刻,这种时刻跟着数据量的添加而添加。第二,索引需求占物理空间,除了数据表占数据空间之外,每一个索引还要占必定的物理空间,假如要树立聚簇索引,那么需求的空间就会更大。第三,当对表中的数据进行添加、删去和修正的时分,索引也要动态的保护,这样就下降了数据的保护速度。
  索引是树立在数据库表中的某些列的上面。因而,在创立索引的时分,应该细心考虑在哪些列上能够创立索引,在哪些列上不能创立索引。一般来说,应该在这些列上创立索引,例如:在常常需求查找的列上,能够加速查找的速度;在作为主键的列上,强制该列的仅有性和安排表中数据的摆放结构;在常常用在衔接的列上,这些列主要是一些外键,能够加速衔接的速度;在常常需求依据规模进行查找的列上创立索引,因为索引现已排序,其指定的规模是接连的;在常常需求排序的列上创立索引,因为索引现已排序,这样查询能够运用索引的排序,加速排序查询时刻;在常常运用在WHERE子句中的列上面创立索引,加速条件的判别速度。
相同,关于有些列不应该创立索引。一般来说,不应该创立索引的的这些列具有下列特色:榜首,关于那些在查询中很少运用或许参阅的列不应该创立索引。这是因为,已然这些列很少运用到,因而有索引或许无索引,并不能进步查询速度。相反,因为添加了索引,反而下降了体系的保护速度和增大了空间需求。第二,关于那些只要很少数据值的列也不应该添加索引。这是因为,因为这些列的取值很少,例如人事表的性别列,在查询的成果中,成果集的数据行占了表中数据行的很大份额,即需求在表中查找的数据行的份额很大。添加索引,并不能显着加速检索速度。第三,关于那些界说为text, image和bit数据类型的列不应该添加索引。这是因为,这些列的数据量要么相当大,要么取值很少。第四,当修正功能远远大于检索功能时,不应该创立索引。这是因为,修正功能和检索功能是互相矛盾的。当添加索引时,会进步检索功能,可是会下降修正功能。当削减索引时,会进步修正功能,下降检索功能。因而,当修正功能远远大于检索功能时,不应该创立索引。
创立索引的办法和索引的特征

创立索引的办法
  创立索引有多种办法,这些办法包含直接创立索引的办法和直接创立索引的办法。直接创立索引,例如运用CREATE INDEX句子或许运用创立索引导游,直接创立索引,例如在表中界说主键束缚或许仅有性键束缚时,一起也创立了索引。尽管,这两种办法都能够创立索引,可是,它们创立索引的具体内容是有差异的。
运用CREATE INDEX句子或许运用创立索引导游来创立索引,这是最根本的索引创立办法,而且这种办法最具有柔性,能够定制创立出契合自己需求的索引。在运用这种办法创立索引时,能够运用许多选项,例如指定数据页的充溢度、进行排序、收拾核算信息等,这样能够优化索引。运用这种办法,能够指定索引的类型、仅有性和复合性,也就是说,既能够创立聚簇索引,也能够创立非聚簇索引,既能够在一个列上创立索引,也能够在两个或许两个以上的列上创立索引。
  经过界说主键束缚或许仅有性键束缚,也能够直接创立索引。主键束缚是一种坚持数据完整性的逻辑,它束缚表中的记载有相同的主键记载。在创立主键束缚时,体系主动创立了一个仅有性的聚簇索引。尽管,在逻辑上,主键束缚是一种重要的结构,可是,在物理结构上,与主键束缚相对应的结构是仅有性的聚簇索引。换句话说,在物理完结上,不存在主键束缚,而只存在仅有性的聚簇索引。相同,在创立仅有性键束缚时,也一起创立了索引,这种索引则是仅有性的非聚簇索引。因而,当运用束缚创立索引时,索引的类型和特征根本上都现已断定了,由用户定制的地步比较小。
  当在表上界说主键或许仅有性键束缚时,假如表中现已有了运用CREATE INDEX句子创立的规范索引时,那么主键束缚或许仅有性键束缚创立的索引掩盖曾经创立的规范索引。也就是说,主键束缚或许仅有性键束缚创立的索引的优先级高于运用CREATE INDEX句子创立的索引。
索引的特征
 
索引有两个特征,即仅有性索引和复合索引。
  仅有性索引确保在索引列中的悉数数据是仅有的,不会包含冗余数据。假如表中现已有一个主键束缚或许仅有性键束缚,那么当创立表或许修正表时,SQL Server主动创立一个仅有性索引。可是,假如有必要确保仅有性,那么应该创立主键束缚或许仅有性键束缚,而不是创立一个仅有性索引。当创立仅有性索引时,应该仔细考虑这些规矩:当在表中创立主键束缚或许仅有性键束缚时,SQL Server主动创立一个仅有性索引;假如表中现已包含有数据,那么当创立索引时,SQL Server检查表中已有数据的冗余性;每逢运用刺进句子刺进数据或许运用修正句子修正数据时,SQL Server检查数据的冗余性:假如有冗余值,那么SQL Server撤销该句子的履行,而且回来一个过错音讯;确保表中的每一行数据都有一个仅有值,这样能够确保每一个实体都能够仅有承认;只能在能够确保实体完整性的列上创立仅有性索引,例如,不能在人事表中的名字列上创立仅有性索引,因为人们能够有相同的名字。
复合索引就是一个索引创立在两个列或许多个列上。在查找时,当两个或许多个列作为一个要害值时,最好在这些列上创立复合索引。当创立复合索引时,应该考虑这些规矩:最多能够把16个列合并成一个独自的复合索引,构成复合索引的列的总长度不能超过900字节,也就是说复合列的长度不能太长;在复合索引中,一切的列有必要来自同一个表中,不能跨表树立复合列;在复合索引中,列的摆放次序是十分重要的,因而要仔细摆放列的次序,原则上,应该首要界说最仅有的列,例如在(COL1,COL2)上的索引与在(COL2,COL1)上的索引是不相同的,因为两个索引的列的次序不同;为了使查询优化器运用复合索引,查询句子中的WHERE子句有必要参阅复合索引中榜首个列;当表中有多个要害列时,复合索引是十分有用的;运用复合索引能够进步查询功能,削减在一个表中所创立的索引数量。
索引的类型
  依据索引的次序与数据表的物理次序是否相同,能够把索引分红两种类型。一种是数据表的物理次序与索引次序相同的聚簇索引,另一种是数据表的物理次序与索引次序不相同的非聚簇索引。
聚簇索引的体系结构
  索引的结构相似于树状结构,树的顶部称为叶级,树的其它部分称为非叶级,树的根部在非叶级中。相同,在聚簇索引中,聚簇索引的叶级和非叶级构成了一个树状结构,索引的最初级是叶级。在聚簇索引中,表中的数据地点的数据页是叶级,在叶级之上的索引页对错叶级,索引数据地点的索引页对错叶级。在聚簇索引中,数据值的次序总是依照升序摆放。
  应该在表中常常查找的列或许依照次序拜访的列上创立聚簇索引。当创立聚簇索引时,应该考虑这些要素:每一个表只能有一个聚簇索引,因为表中数据的物理次序只能有一个;表中行的物理次序和索引中行的物理次序是相同的,在创立任何非聚簇索引之前创立聚簇索引,这是因为聚簇索引改动了表中行的物理次序,数据行依照必定的次序摆放,而且主动保护这个次序;要害值的仅有性要么运用UNIQUE要害字清晰保护,要么由一个内部的仅有标识符清晰保护,这些仅有性标识符是体系自己运用的,用户不能拜访;聚簇索引的均匀巨细大约是数据表的百分之五,可是,实践的聚簇索引的巨细常常依据索引列的巨细改动而改动;在索引的创立进程中,SQL Server暂时运用当时数据库的磁盘空间,当创立聚簇索引时,需求1.2倍的表空间的巨细,因而,必定要确保有满足的空间来创立聚簇索引。
  当体系拜访表中的数据时,首要断定在相应的列上是否存在有索引和该索引是否对要检索的数据有意义。假如索引存在而且该索引十分有意义,那么体系运用该索引拜访表中的记载。体系从索引开端阅读到数据,索引阅读则从树状索引的根部开端。从根部开端,查找值与每一个要害值相比较,断定查找值是否大于或许等于要害值。这一步重复进行,直到碰上一个比查找值大的要害值,或许该查找值大于或许等于索引页上一切的要害值停止。
非聚簇索引的体系结构
  非聚簇索引的结构也是树状结构,与聚簇索引的结构十分相似,可是也有显着的不同。
在非聚簇索引中,叶级仅包含要害值,而没有包含数据行。非聚簇索引标明行的逻辑次序。  非聚簇索引有两种体系结构:一种体系结构是在没有聚簇索引的表上创立非聚簇索引,另一种体系结构是在有聚簇索引的表上创立非聚簇索引。
  假如一个数据表中没有聚簇索引,那么这个数据表也称为数据堆。当非聚簇索引在数据堆的顶部创立时,体系运用索引页中的行标识符指向数据页中的记载。行标识符存储了数据地点方位的信息。数据堆是经过运用索引分配图(IAM)页来保护的。IAM页包含了数据堆地点簇的存储信息。在体系表sysindexes中,有一个指针指向了与数据堆相关的榜首个IAM页。体系运用IAM页在数据堆中阅读和寻觅能够刺进新的记载行的空间。这些数据页和在这些数据页中的记载没有任何的次序而且也没有链接在一起。在这些数据页之间的仅有的衔接是IAM中记载的次序。当在数据堆上创立了非聚簇索引时,叶级中包含了指向数据页的行标识符。行标识符指定记载行的逻辑次序,由文件ID、页号和行ID组成。这些行的标识符坚持仅有性。非聚簇索引的叶级页的次序不同于表中数据的物理次序。这些要害值在叶级中以升序坚持。
当非聚簇索引创立在有聚簇索引的表上的时分,体系运用索引页中的指向聚簇索引的聚簇键。聚簇键存储了数据的方位信息。假如某一个表有聚簇索引,那么非聚簇索引的叶级包含了映射到聚簇键的聚簇键值,而不是映射到物理的行标识符。当体系拜访有非聚簇索引的表中数据时,而且这种非聚簇索引创立在聚簇索引上,那么它首要从非聚簇索引来找到指向聚簇索引的指针,然后经过运用聚簇索引来找到数据。
  当需求以多种办法检索数据时,非聚簇索引是十分有用的。当创立非聚簇索引时,要考虑这些状况:在缺省状况下,所创立的索引对错聚簇索引;在每一个表上面,能够创立不多于249个非聚簇索引,而聚簇索引最多只能有一个。
体系怎么拜访表中的数据
一般地,体系拜访数据库中的数据,能够运用两种办法:表扫描和索引查找。榜首种办法是表扫描,就是指体系将指针放置在该表的表头数据地点的数据页上,然后依照数据页的摆放次序,一页一页地早年向后扫描该表数据所占有的悉数数据页,直至扫描完表中的悉数记载。在扫描时,假如找到契合查询条件的记载,那么就将这条记载挑选出来。最终,将悉数挑选出来契合查询句子条件的记载显现出来。第二种办法是运用索引查找。索引是一种树状结构,其间存储了要害字和指向包含要害字地点记载的数据页的指针。当运用索引查找时,体系沿着索引的树状结构,依据索引中要害字和指针,找到契合查询条件的的记载。最终,将悉数查找到的契合查询句子条件的记载显现出来。
  在SQL Server中,当拜访数据库中的数据时,由SQL Server断定该表中是否有索引存在。假如没有索引,那么SQL Server运用表扫描的办法拜访数据库中的数据。查询处理器依据散布的核算信息生成该查询句子的优化履行规划,以进步拜访数据的功率为方针,断定是运用表扫描仍是运用索引。
索引的选项
  在创立索引时,能够指定一些选项,经过运用这些选项,能够优化索引的功能。这些选项包含FILLFACTOR选项、PAD_INDEX选项和SORTED_DATA_REORG选项。
运用FILLFACTOR选项,能够优化刺进句子和修正句子的功能。当某个索引页变满时,SQL Server有必要花费时刻分化该页,以便为新的记载行腾出空间。运用FILLFACTOR选项,就是在叶级索引页上分配必定百分比的自由空间,以便削减页的分化时刻。当在有数据的表中创立索引时,能够运用FILLFACTOR选项指定每一个叶级索引节点的填充的百分比。缺省值是0,该数值等价于100。在创立索引的时分,内部索引节点总是留有了必定的空间,这个空间满足包容一个或许两个表中的记载。在没有数据的表中,当创立索引的时分,不要运用该选项,因为这时该选项是没有实践意义的。别的,该选项的数值在创立时指定今后,不能动态地得到保护,因而,只应该在有数据的表中创立索引时才运用。
  PAD_INDEX选项将FILLFACTOR选项的数值相同也用于内部的索引节点,使内部的索引节点的填充度与叶级索引的节点中的填充度相同。假如没有指定FILLFACTOR选项,那么独自指定PAD_INDEX选项是没有实践意义的,这是因为PAD_INDEX选项的取值是由FILLFACTOR选项的取值断定的。
当创立聚簇索引时,SORTED_DATA_REORG选项铲除排序,因而能够削减树立聚簇索引所需求的时刻。当在一个现已变成碎块的表上创立或许重建聚簇索引时,运用SORTED_DATA_REORG选项能够紧缩数据页。当从头需求在索引上运用填充度时,也运用该选项。当运用SORTED_DATA_REORG选项时,应该考虑这些要素:SQL Server承认每一个要害值是否比前一个要害值高,假如都不高,那么不能创立索引;SQL Server要求1.2倍的表空间来物理地从头安排数据;运用SORTED_DATA_REORG选项,经过铲除排序进程而加速索引创立进程;从表中物理地复制数据;当某一个行被删去时,其所占的空间能够从头运用;创立悉数非聚簇索引;假如期望把叶级页填充到必定的百分比,能够一起运用FILLFACTOR选项和SORTED_DATA_REORG选项。
索引的保护
  为了保护体系功能,索引在创立之后,因为频频地对数据进行添加、删去、修正等操作使得索引页发作碎块,因而,有必要对索引进行保护。
  运用DBCC SHOWCONTIG句子,能够显现表的数据和索引的碎块信息。当履行DBCC SHOWCONTIG句子时,SQL Server阅读叶级上的整个索引页,来断定表或许指定的索引是否严峻碎块。DBCC SHOWCONTIG句子还能断定数据页和索引页是否现已满了。当对表进行很多的修正或许添加很多的数据之后,或许表的查询十分慢时,应该在这些表上履行DBCC SHOWCONTIG句子。当履行DBCC SHOWCONTIG句子时,应该考虑这些要素:当履行DBCC SHOWCONTIG句子时,SQL Server要求指定表的ID号或许索引的ID号,表的ID号或许索引的ID号能够从体系表sysindexes中得到;应该断定多长时刻运用一次DBCC SHOWCONTIG句子,这个时刻长度要依据表的活动状况来定,每天、每周或许每月都能够。
运用DBCC DBREINDEX句子重建表的一个或许多个索引。当期望重建索引和当表上有主键束缚或许仅有性键束缚时,履行DBCC DBREINDEX句子。除此之外,履行DBCC DBREINDEX句子还能够从头安排叶级索引页的存储空间、删去碎块和从头核算索引核算。当运用履行DBCC DBREINDEX句子时,应该考虑这些要素:依据指定的填充度,体系从头填充每一个叶级页;运用DBCC DBREINDEX句子重建主键束缚或许仅有性键束缚的索引;运用SORTED_DATA_REORG选项能够更快地创立聚簇索引,假如没有摆放要害值,那么不能运用DBCC DBREINDEX句子;DBCC DBREINDEX句子不支持体系表。别的,还能够运用数据库保护规划导游主动地进行重建索引的进程。
  核算信息是存储在SQL Server中的列数据的样本。这些数据一般地用于索引列,可是还能够为非索引列创立核算。SQL Server保护某一个索引要害值的散布核算信息,而且运用这些核算信息来断定在查询进程中哪一个索引是有用的。查询的优化依赖于这些核算信息的散布精确度。查询优化器运用这些数据样原本决议是运用表扫描仍是运用索引。当表中数据发作改动时,SQL Server周期性地主动修正核算信息。索引核算被主动地修正,索引中的要害值显着改动。核算信息修正的频率由索引中的数据量和数据改动量断定。例如,假如表中有10000行数据,1000行数据修正了,那么核算信息或许需求修正。可是,假如只要50行记载修正了,那么依然坚持当时的核算信息。除了体系主动修正之外,用户还能够经过履行UPDATE STATISTICS句子或许sp_updatestats体系存储进程来手艺修正核算信息。运用UPDATE STATISTICS句子既能够修正表中的悉数索引,也能够修正指定的索引。
运用SHOWPLAN和STATISTICS IO句子能够剖析索引和查询功能。运用这些句子能够更好地调整查询和索引。SHOWPLAN句子显现在衔接表中运用的查询优化器的每一步以及标明运用哪一个索引拜访数据。运用SHOWPLAN句子能够检查指定查询的查询规划。当运用SHOWPLAN句子时,应该考虑这些要素。SET SHOWPLAN_ALL句子回来的输出成果比SET SHOWPLAN_TEXT句子回来的输出成果具体。可是,运用程序有必要能够处理SET SHOWPLAN_ALL句子回来的输出成果。SHOWPLAN句子生成的信息只能针对一个会话。假如从头衔接SQL Server,那么有必要从头履行SHOWPLAN句子。STATISTICS IO句子标明输入输出的数量,这些输入输出用来回来成果集和显现指定查询的逻辑的和物理的I/O的信息。能够运用这些信息来断定是否应该重写查询句子或许从头规划索引。运用STATISTICS IO句子能够检查用来处理指定查询的I/O信息。
就象SHOWPLAN句子相同,优化器躲藏也用来调整查询功能。优化器躲藏能够对查询功能供给较小的改善,而且假如索引战略发作了改动,那么这种优化器躲藏就毫无用处了。因而,束缚运用优化器躲藏,这是因为优化器躲藏更有功率和更有柔性。当运用优化器躲藏时,考虑这些规矩:指定索引称号、当index_id为0时为运用表扫描、当index_id为1时为运用聚簇索引;优化器躲藏掩盖查询优化器,假如数据或许环境发作了改动,那么有必要修正优化器躲藏。
索引调整导游
索引调整导游是一种东西,能够剖析一系列数据库的查询句子,供给运用一系列数据库索引的主张,优化整个查询句子的功能。关于查询句子,需求指定下列内容:
查询句子,这是即将优化的作业量 
包含了这些表的数据库,在这些表中,能够创立索引,进步查询功能 
在剖析中运用的表 
在剖析中,考虑的束缚条件,例如索引能够运用的最大磁盘空间 
  这儿指的作业量,能够来自两个方面:运用SQL Server捕捉的轨道和包含了SQL句子的文件。索引调整导游总是依据一个现已界说好的作业量。假如一个作业量不能反映正常的操作,那么它主张运用的索引不是实践的作业量上功能最好的索引。索引调整导游调用查询剖析器,运用一切或许的组合鉴定在这个作业量中每一个查询句子的功能。然后,主张在整个作业量上能够进步整个查询句子的功能的索引。假如没有供索引调整导游来剖析的作业量,那么能够运用图解器当即创立它。一旦决议盯梢一条正常数据库活动的描绘样本,导游能够剖析这种作业量和引荐能够进步数据库作业功能的索引装备。
索引调整导游对作业量进行剖析之后,能够检查到一系列的陈述,还能够使该导游当即创立所主张的最佳索引,或许使这项作业成为一种能够调度的作业,或许生成一个包含创立这些索引的SQL句子的文件。
索引调整导游答应为SQL Server数据库挑选和创立一种抱负的索引组合和核算,而不要求对数据库结构、作业量或许SQL Server内部到达专家的了解程度。总归,索引调整导游能够作到以下几个方面的作业:
经过运用查询优化器来剖析作业量中的查询使命,向有很多作业量的数据库引荐一种最佳的索引混合办法 
剖析依照主张作出改动之后的作用,包含索引的用法、表间查询的散布和很多作业中查询的作业作用 
为少数查询使命引荐调整数据库的办法 
  经过设定高档选项如磁盘空间束缚、最大的查询句子数量和每个索引的最多列的数量等,答应定制引荐办法 
图解器
  图解器能够实时抓取在服务器中运转的接连图片,能够选取期望监测的项目和事情,包含Transact-SQL句子和批指令、目标的用法、断定、安全事情和过错。图解器能够过滤这些事情,仅仅显现用户关怀的问题。能够运用同一台服务器或许其他服务器重复现已记载的盯梢事情,从头履行那些现已作了记载的指令。经过会集处理这些事情,就能够很简略监测和调试SQL Server中呈现的问题。经过对特定事情的研讨,监测和调试SQL Server问题变得简略多了。
查询处理器
  查询处理器是一种能够完结许多作业的多用途的东西。在查询处理器中,能够交互式地输入和履行各种Transact-SQL句子,而且在一个窗口中能够一起检查Transact-SQL句子和其成果集;能够在查询处理器中一起履行多个Transact-SQL句子,也能够履行脚本文件中的部分句子;供给了一种图形化剖析查询句子履行规划的办法,能够陈述由查询处理器挑选的数据检索办法,而且能够依据查询规划调整查询句子的履行,提出履行能够进步功能的优化索引主张,这种主张仅仅针对一条查询句子的索引主张,只能进步这一条查询句子的查询功能。
体系为每一个索引创立一个散布页,核算信息就是指存储在散布页上的某一个表中的一个或许多个索引的要害值的散布信息。当履行查询句子时,为了进步查询速度和功能,体系能够运用这些散布信息来断定运用表的哪一个索引。查询处理器就是依赖于这些散布的核算信息,来生成查询句子的履行规划。履行规划的优化程度依赖于这些散布核算信息的精确过程的凹凸程度。假如这些散布的核算信息与索引的物理信息十分共同,那么查询处理器能够生成优化程度很高的履行规划。相反,假如这些核算信息与索引的实践存储的信息相差比较大,那么查询处理器生成的履行规划的优化程度则比较低。
  查询处理器从核算信息中提取索引要害字的散布信息,除了用户能够手艺履行UPDATE STATISTICS之外,查询处理器还能够主动搜集核算这些散布信息。这样,就能够充沛确保查询处理器运用最新的核算信息,确保履行规划具有很高的优化程度,削减了保护的需求。当然,运用查询处理器生成的履行规划,也有一些束缚。例如,运用履行规划只能进步单个查询句子的功能,可是或许对整个体系的功能发作正面的或许付面的影响,因而,要想进步整个体系的查询功能,应该运用索引调整导游这样的东西。
定论
  在曾经的SQL Server版别中,在一个查询句子中,一个表上最多运用一个索引。而在SQL Server 7.0中,索引操作得到了增强。SQL Server现在运用索引刺进和索引联合算法来完结在一个查询句子中的能够运用多个索引。同享的行标识符用于衔接同一个表上的两个索引。假如某个表中有一个聚簇索引,因而有一个聚簇键,那么该表上的悉数非聚簇索引的叶节点运用该聚簇键作为行定位器,而不是运用物理记载标识符。假如表中没有聚簇索引,那么非聚簇索引持续运用物理记载标识符指向数据页。在上面的两种状况中,行定位器是十分安稳的。当聚簇索引的叶节点分隔时,因为行定位器是有用的,所以非聚簇索引不需求被修正。假如表中没有聚簇索引,那么页的分隔就不会发作。而在曾经的版别中,非聚簇索引运用物理记载标识符如页号和行号,作为行的定位器。例如,假如聚簇索引(数据页)发作分化时,许多记载行被移动到了一个新的数据页,因而有了多个新的物理记载标识符。那么,一切的非聚簇索引都有必要运用这些新的物理记载标识符进行修正,这样就需求消耗很多的时刻和资源。
  索引调整导游不管对娴熟用户仍是新用户,都是一个很好的东西。娴熟用户能够运用该导游创立一个根本的索引装备,然后在根本的索引装备上面进行调整和定制。新用户能够运用该导游快速地创立优化的索引。
版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表千亿集团立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章