精华内容
下载资源
问答
  • 建立索引的原则

    2012-12-14 14:09:38
    建立索引的原则,主要有以下几个方面: l.经常在WHERE子句中使用的列 2.SQL语句中经常用于表关联的列 3.重复性少(可选择性高)的关键字,如主键 4.不宜将经常UPDATE的列作为索引列 5.不宜将经常在WHERE子句中...
    建立索引的原则,主要有以下几个方面:
    l.经常在WHERE子句中使用的列
    2.SQL语句中经常用于表关联的列
    3.重复性少(可选择性高)的关键字,如主键
    4.不宜将经常UPDATE的列作为索引列
    5.不宜将经常在WHERE子句中使用,但与函数或操作符相结合的列作为索引列
    6.对于取值较少的列,应考虑建立位图索引,而不应该采用B树索引
    7.如果经常访问的列上要使用函数,应使用基于函数的索引
    展开全文
  • 数据库建立索引的原则 建立索引的原则: 定义主键的数据列一定要建立索引。 定义有外键的数据列一定要建立索引。 对于经常查询的数据列最好建立索引。 对于需要在指定范围内的快速或频繁查询的数据列; 经常用在...

    数据库建立索引的原则


    建立索引的原则:

    1. 定义主键的数据列一定要建立索引。
    2. 定义有外键的数据列一定要建立索引。
    3. 对于经常查询的数据列最好建立索引。
    4. 对于需要在指定范围内的快速或频繁查询的数据列;
    5. 经常用在WHERE子句中的数据列。
    6. 经常出现在关键字order by、group by、distinct后面的字段,建立索引。如果建立的是复合索引,索引的字段顺序要和这些关键字后面的字段顺序一致,否则索引不会被使用。
    7. 对于那些查询中很少涉及的列,重复值比较多的列不要建立索引。
    8. 对于定义为text、image和bit的数据类型的列不要建立索引。
    9. 对于经常存取的列避免建立索引
    10. 限制表上的索引数目。对一个存在大量更新操作的表,所建索引的数目一般不要超过3个,最多不要超过5个。索引虽说提高了访问速度,但太多索引会影响数据的更新操作。
    11. 对复合索引,按照字段在查询条件中出现的频度建立索引。在复合索引中,记录首先按照第一个字段排序。对于在第一个字段上取值相同的记录,系统再按照第二个字段的取值排序,以此类推。因此只有复合索引的第一个字段出现在查询条件中,该索引才可能被使用,因此将应用频度高的字段,放置在复合索引的前面,会使系统最大可能地使用此索引,发挥索引的作用。

    组合多个索引
      一个单独的索引扫描只能用于这样的条件子句:使用被索引字段和索引操作符类中的操作符, 并且这些条件以AND连接。假设在(a, b)上有一个索引, 那么类似WHERE a = 5 AND b = 6的条件可以使用索引,但是像WHERE a = 5 OR b = 6的条件就不能直接使用索引。
    一个类似WHERE x =42 OR x = 47 OR x = 53 OR x = 99 这样的查询可以分解成四个在x上的独立扫描,每个扫描使用一个条件, 最后将这些扫描的结果OR 在一起,生成最终结果。另外一个例子是,如果我们在x 和y上有独立的索引,一个类似WHERE x = 5 AND y = 6 这样的查询可以分解为几个使用独立索引的子句,然后把这几个结果AND 在一起,生成最终结果。

    在大多数最简单的应用里,可能有多种索引组合都是有用的,数据库开发人员必须在使用哪个索引之间作出平衡。有时候多字段索引是最好的,有时候创建一个独立索引并依靠索引组合是最好的。比如,假如你的查询有时候只涉及字段x,有时候只涉及字段y,有时候两个字段都涉及, 那么你可能会选择在x和y上创建两个独立的索引, 然后依靠索引组合来处理同时使用两个字段的查询。你也可以在(x, y)上创建一个多字段索引, 它在同时使用两个字段的查询通常比索引组合更高效,但是对那些只包含y的查询几乎没有用,因此它不能是唯一一个索引。一个多字段索引和y上的独立索引可能会更好。因为对那些只涉及x的查询, 可以使用多字段索引,但是它会更大,因此也比只在x上的索引更慢。最后一个选择是创建三个索引, 但是这种方法只有在表的更新远比查询少,并且所有三种查询都很普遍的情况下才是合理的。如果其中一种查询比其它的很多,那么你可能更愿意仅仅创建两种匹配更常见查询的索引。

    备注:设定某个列为主键时,是否默认为其创建索引?
    答:一般创建主键时,大多数数据库会自动创建一个唯一索引,一般来说外键肯定是会被经常做连接查询的字段,所以数据库管理系统会自动加上索引。mysql / oralce / sql server 等都会自动添加。

    展开全文
  • 建立索引的原则总结

    2021-02-13 21:11:58
    数据库建立索引的原则 1,确定针对该表的操作是大量的查询操作还是大量的增删改操作。 2,尝试建立索引来帮助特定的查询。检查自己的sql语句,为那些频繁在where子句中出现的字段建立索引。 3,尝试建立复合索引来...

    数据库建立索引的原则
    1,确定针对该表的操作是大量的查询操作还是大量的增删改操作。
    2,尝试建立索引来帮助特定的查询。检查自己的sql语句,为那些频繁在where子句中出现的字段建立索引。
    3,尝试建立复合索引来进一步提高系统性能。修改复合索引将消耗更长时间,同时,复合索引也占磁盘空间。
    4,对于小型的表,建立索引可能会影响性能
    5,应该避免对具有较少值的字段进行索引。
    6,避免选择大型数据类型的列作为索引。
    7,在SQL语句中经常进行GROUP BY、ORDER BY的字段上建立索引;

    展开全文
  • Oracle建立索引的原则

    千次阅读 2019-10-23 15:46:57
    1.数据库建立索引的原则 铁律一:天下没有免费的午餐,使用索引是需要付出代价的。 铁律二:对于查询中很少涉及的列或者重复值比较多的列,不要建立索引。 铁律三:对于按范围查询的列,最好建立索引。 铁律四:...

    1.数据库建立索引的原则

       铁律一:天下没有免费的午餐,使用索引是需要付出代价的。

       铁律二:对于查询中很少涉及的列或者重复值比较多的列,不要建立索引。

       铁律三:对于按范围查询的列,最好建立索引。

       铁律四:表中若有主键或者外键,一定要为其建立索引。

       铁律五:对于一些特殊的数据类型,不要建立索引。

       铁律六:索引可以跟Where语句的集合融为一体。

    建立索引常用规则:


    1、表的主键、外键必须有索引;

    2、数据量超过300的表应该有索引;

    3、经常与其他表进行连接的表,在连接字段上应该建立索引;

    4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;

    5、索引应该建在选择性高的字段上;

    6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;

    7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:

       A、正确选择复合索引中的主列字段,一般是选择性较好的字段;

       B、复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有?
          如果是,则可以建立复合索引;否则考虑单字段索引;

       C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引;

       D、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段;

       E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引;

       F、复合索引中只要有一列含有NULL值,那么这一列对于此复合索引是无效的


         G.索引,不仅仅是主键和唯一键,也可以是其他的任何列。在使用like其中一个有索引的字段列的时候。

               如: select *from A name like ‘xxx%’;

       这个sql会使用name的索引(前提name建立了索引);而下面的语句就使用不了索引

       Select * from A name like ‘%xxx’;

       因为‘%’代表任何字符,%xxx不知道怎么去索引的,所以使用不了索引。

         H.  如果我们创建了(area,age,salary)的复合索引,那么其实相当于创建了(area,age,salary),(area,age),(area)三个索引,这样称为最佳左前             缀特性。因此我们在创建复合索引的应该将最常用作限制条件的列放在最左边,依次递减。
    8、频繁进行数据操作的表,不要建立太多的索引;

    9、删除无用的索引,避免对执行计划造成负面影响
    ————————————————
    版权声明:本文为CSDN博主「duolacmeng28」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/u011358288/article/details/41893717

    展开全文
  • mysql 建立索引的原则

    2017-10-20 16:59:31
    mysql 建立索引的原则  索引查询是数据库中重要的记录查询方法,要不要进入索引以及在那些字段上建立索引都要和实际数据库系统的查询要求结合来考虑,下面给出实际中的一些通用的原则: 1. 在经常用作过滤器...
  • 仔细数数,其实建立索引的代价还是蛮大的。如创建索引和维护索引都需要花费时间与精力。特别是在数据库设计的时候,数据库管理员为表中的哪些字段需要建立索引,要调研、要协调。如当建有索引的表中的纪...
  • 数据库建立索引的原则 1,确定针对该表的操作是大量的查询操作还是大量的增删改操作。 2,尝试建立索引来帮助特定的查询。检查自己的sql语句,为那些频繁在where子句中出现的字段建立索引。 3,尝试建立复合索引来...
  • 建立索引的原则: (1)定义有主键的数据列一定要建立索引。因为主键可以加速定位到表中的某一行  (2)定义有外间的数据列一定要建立索引。外键列通常用于表与表之间的连接,在其上创建索引可以加快表间的连接...
  • mysql建立多列索引有最左前缀的原则,即最左优先,如: 如果有一个2列的索引(col1,col2),则已经对(col1)、(col1,col2)上建立索引; 如果有一个 3现实中,mysql可以根据业务需要建立组合索引,由于mysql使用B-...
  • oracle数据库建立索引的原则

    千次阅读 2016-08-08 23:16:02
    数据库建立索引的原则 1,确定针对该表的操作是大量的查询操作还是大量的增删改操作。 2,尝试建立索引来帮助特定的查询。检查自己的sql语句,为那些频繁在where子句中出现的字段建立索引。 3,尝试建立复合索引来...
  • 数据库建立索引的原则 1,确定针对该表的操作是大量的查询操作还是大量的增删改操作。 2,尝试建立索引来帮助特定的查询。检查自己的sql语句,为那些频繁在where子句中出现的字段建立索引。 3,尝试建立复合索引来...
  • 数据库建立索引的原则 1,确定针对该表的操作是大量的查询操作还是大量的增删改操作。 2,尝试建立索引来帮助特定的查询。检查自己的sql语句,为那些频繁在where子句中出现的字段建立索引。 3,尝试建立复合索引来...
  • 1.选择唯一性索引唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录。例如,学生表中学号是具有唯一性的字段。为该字段建立唯一性索引可以很快的确定某个学生的信息。如果使用姓名的话,可能存在同名...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,008
精华内容 803
关键字:

建立索引的原则