精华内容
下载资源
问答
  • 数据库索引创建规则

    2014-07-27 10:05:33
    3、经常与其他表进行连接的表,在连接字段上应该建立索引; 4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引; 5、索引应该建在选择性高的字段上; 6、索引应该建在小字段上,对于大的文本字段甚至...

    数据库技术学习 https://www.itkc8.com

    1、表的主键、外键必须有索引;
    2、数据量超过300的表应该有索引;
    3、经常与其他表进行连接的表,在连接字段上应该建立索引;
    4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;
    5、索引应该建在选择性高的字段上;
    6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;
    7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:
    A、正确选择复合索引中的主列字段,一般是选择性较好的字段;
    B、复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引;
    C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引;
    D、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段;
    E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引;搜索
    8、频繁进行数据操作的表,不要建立太多的索引;
    9、删除无用的索引,避免对执行计划造成负面影响;
    以上是一些普遍的建立索引时的判断依据。一言以蔽之,索引的建立必须慎重,对每个索引的必要性都应该经过仔细分析,要有建立的依据。因为太多的索引与不充分、不正确的索引对性能都毫无益处:在表上建立的每个索引都会增加存储开销,索引对于插入、删除、更新操作也会增加处理上的开销。另外,过多的复合索引,在有单字段索引的情况下,一般都是没有存在价值的;相反,还会降低数据增加删除时的性能,特别是对频繁更新的表来说,负面影响更大。

     

    数据库技术学习 https://www.itkc8.com

    展开全文
  • 数据库创建索引规则

    千次阅读 2018-07-29 00:12:50
    数据库适合创建索引规则如下: 表的主键,外键应该创建索引; 数据量比较大的表应该创建索引; 经常需要和其他表建立连接,在连接字段应该创建索引; 经常出现在where子句中的字段,应该创建索引数据库不...

    数据库适合创建索引的规则如下:

    • 表的主键,外键应该创建索引;
    • 数据量比较大的表应该创建索引;
    • 经常需要和其他表建立连接,在连接字段应该创建索引;
    • 经常出现在where子句中的字段,应该创建索引。

    数据库不适合创建索引的情况:

    • 比较大的文本字段或者长度较长的字段,不适合创建索引;
    • 频繁进行数据操作的表,不适合创建过多的索引,因为额外维护索引表需要更多的开销;
    • 小型表(数据量低于300行)不要建立索引。
    展开全文
  • 索引1.1 原理1.2 创建索引1.2.1 创建主键索引1.2.2 唯一索引创建1.2.3 普通索引创建1.2.4 全文索引创建1.3 查询索引1.4 删除索引1.5 索引创建规则 1.索引   索引是对数据库表中一列或多列的值进行排序的...

    1.索引

      索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。但是查询速度的提高是以插入,更新,删除的速度为代价的,所以索引的作用在于提高一个海量数据的检索速度。
    常见索引分为:

    • 主键索引(primary key)
    • 唯一索引(unique)
    • 普通索引(index)
    • 全文索引(fulltext)

    1.1 原理

    假设数据库中有上亿的数据,我们执行select操作,就是将这上亿个数据按着遍历一遍,性能会非常的差,耗时巨大。
    但是建立索引之后搜索的性能将大大提高
    在这里插入图片描述
    索引的缺点:

    • 占用磁盘空间
    • 当添加一条记录,除了添加到表中,还要维护二叉树,速度有影响但不大
    • 当我们添加一条索引,不能够解决所有的查询问题,需要分别给字段建立索引
    • 索引是以空间换取时间

    1.2 创建索引

    1.2.1 创建主键索引

    创建表时,直接在字段名后指定primary key

    create table user1(
    	id primary key,
    	name varchar(32)
    );
    

    创建表时,指定某列或某几列为主键索引

    create table user2(
    	id int,
    	name varchar(32),
    	primary key(id)
    );
    

    创建表后添加主键

    create table user3(
    	id int,
    	name varchar(32)
    );
    alter table user3 add primary key(id);
    

    主键索引的特点:

    • 一个表中最多有一个主键索引
    • 主键索引的效率高
    • 创建主键索引的列,它的值不能为null、且不能重复
    • 主键索引的值一般都是int

    1.2.2 唯一索引的创建

    直接在字段名后指定unique唯一属性

    create table user4(
    	id int primary key,
    	name varchar(32) unique
    );
    

    创建表时,指定某列或某几列为unique

    create table user5(
    	id int primary key,
    	name varchar(32),
    	unique(name)
    );
    

    创建表后添加唯一索引

    create table user6(
    	id int primary key,
    	name varchar(32)
    );
    alter table user6 add unique(name);
    

    唯一索引的特点:

    • 一个表中,可以有多个唯一索引
    • 查询效率高
    • 如果在某一列建立唯一索引,必须保证这列不能有重复数据
    • 如果一个唯一索引上指定not null,等价于主键索引

    1.2.3 普通索引的创建

    在表的定义后,指定某列为索引

    create table user8(
    	name varchar(20),
    	email varchar(30)
    	index(name)
    );
    

    创建表后,指定某列为索引

    create table user9(
    	id primary key,
    	name varchar(20),
    	email varchar(30)
    );
    alter table
     user9  add index(name);
    

    直接创建索引

    create table user10(
    	id int primary key, 
    	name varchar(32),
    	email varchar(30)
    );
    create index idx_name on user10(name);
    

    1.2.4 全文索引的创建

    当对文章字段或有大量文字的字段进行检索时,会使用到全文索引,MySQL提供全文索引机制,但是有要求,要求表的存储引擎必须是MyISAM,而且默认的全文搜索支持英文,不支持中文。
    在这里插入图片描述

    1.3 查询索引

    show keys from 表名\G;
    

    在这里插入图片描述

    show index from 表名;
    desc 表名; //比较简略
    

    1.4 删除索引

    删除主键索引

    alter table 表名 drop primary key;
    

    其他索引的删除

    alter table 表名 drop index 索引名;
    

    drop index 索引名 on 表名

    1.5 索引创建的规则

    • 比较频繁作为查询字段的字段应该建立索引
    • 唯一性太差的字段不适合单独创建索引
    • 更新十分频繁的字段不适合创建索引
    • 不会出现在where语句中的字段不该创建索引
    展开全文
  • 数据库索引规则

    2018-08-07 16:26:33
    建立索引常用的规则如下:  1、表的主键、外键必须有索引; 2、数据量超过300的表应该有索引; 3、经常与其他表进行连接的表,在连接字段上应该建立索引; 4、经常出现在Where子句中的字段,特别是大表的字段,应该...

    原则上索引可以加在任何字段,不过有的字段不需要加索引,或者说,加了反而不好。
    建立索引常用的规则如下: 
    1、表的主键、外键必须有索引;
    2、数据量超过300的表应该有索引;
    3、经常与其他表进行连接的表,在连接字段上应该建立索引;
    4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;
    5、索引应该建在选择性高的字段上;
    6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;
    7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:
    8、频繁进行数据操作的表,不要建立太多的索引;
    9、删除无用的索引,避免对执行计划造成负面影响;
       以上是一些普遍的建立索引时的判断依据。一言以蔽之,索引的建立必须慎重,对每个索引的必要性都应该经过仔细分析,要有建立的依据。因为太多的索引与不充分、不正确的索引对性能都毫无益处:在表上建立的每个索引都会增加存储开销,索引对于插入、删除、更新操作也会增加处理上的开销。另外,过多的复合索引,在有单字段索引的情况下,一般都是没有存在价值的;相反,还会降低数据增加删除时的性能,特别是对频繁更新的表来说,负面影响更大。
    第二个问题:
    索引建在主键上就是唯一索引,但是唯一索引不一定建在主键上,因为唯一索引可以有多个。
    主键与索引的区别如下:
        主键是一种约束,唯一索引是一种索引,两者在本质上是不同的。
        主键创建后一定包含一个唯一性索引,唯一性索引并不一定就是主键。
        唯一性索引列允许空值,而主键列不允许为空值。
        主键列在创建时,已经默认不为空值 + 唯一索引了。
        主键可以被其他表引用为外键,而唯一索引不能。
        一个表最多只能创建一个主键,但可以创建多个唯一索引。
        主键更适合那些不容易更改的唯一标识,如自动递增列、身份证号等。
    第三个问题:
    建索引的命令不用说了,建在主键上的索引就是唯一索引

    展开全文
  • 数据库建立索引规则

    2010-10-11 12:03:00
    设定表数据量行数值为rows,表属性列选择值为unique_c 规则1、 表rows, 情况一:只存在单表查询时不创建索引(主键除外) 情况二:存在与其他表联查时,创建索引 规则2、 表...
  • 创建索引之前需要进行调研和协调1、索引会增加服务器的开销(索引存储于二叉树,二叉树每当新增或者减少数据以后就会进行旋转,至于新的平衡态)在数据库中,索引的重新调整,是有数据库自动完成的,具有一定的...
  • 数据库索引规则

    2013-12-06 12:05:16
    数据库建立索引常用的规则如下:  1、表的主键、外键必须有索引;  2、数据量超过300的表应该有索引;  3、经常与其他表进行连接的表,在连接字段上应该建立索引;  4、经常出现在Where子句中的字段,特别是...
  • 数据库索引

    2020-11-16 16:24:39
    数据库适合创建索引规则如下: 表的主键,外键应该创建索引; 数据量比较大的表应该创建索引; 经常需要和其他表建立连接,在连接字段应该创建索引; 经常出现在where子句中的字段,应该创建索引数据库不适合...
  • SQL索引数据库优化中占有一个非常大的比例, 一个好的索引的设计,可以让你的效率提高几十甚至几百倍,在这里将带你一步步揭开他的神秘面纱。 1.1 什么是索引? SQL索引有两种,聚集索引和非聚集索引索引主要...
  • 数据库建立索引常用的规则

    千次阅读 2019-08-01 19:04:11
    数据库建立索引常用的规则如下: 1、表的主键、外键必须有索引;  2、数据量...
  • 数据库索引的使用规则

    千次阅读 2017-04-11 10:56:52
    1.应该建索引的字段:1.经常作为查询条件的字段2.外键3.经常需要排序的字段4.分组排序的字段。 2.应该少建或者不建索引的字段有:1.表记录太少,2.经常需要插入,删除,修改的表,3.表中数据重复且分布平均的...
  • 3、经常与其他表进行连接的表,在连接字段上应该建立索引;4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;5、索引应该建在选择性高的字段上;6、索引应该建在小字段上,对于大的文本字段甚至...
  • 数据库索引创建

    2018-07-09 09:00:19
    1.什么是数据库索引索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。但使用索引虽然可以提升数据库的查询效率,但如果系统有较多的增、删、改操作,也会使得系统的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 151,254
精华内容 60,501
关键字:

数据库索引建立规则