精华内容
下载资源
问答
  • 对数据库表创建索引的缺点有
    2019-07-04 16:00:19

    缺点:

    第一,创建索引和维护索引要耗费时间,这种时间随着数据 量的增加而增加。

    第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。

    第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

    什么时候不创建索引:

    第一,对于那些在查询中很少使用或者参考的列不应该创建索引。这是因 为,既然这些列很少使用到,因此有索引或者无索引,并不能提高查询速度。相反,由于增加了索引,反而降低了系统的维护速度和增大了空间需求。

    第二,对于那 些只有很少数据值的列也不应该增加索引。这是因为,由于这些列的取值很少,例如人事表的性别列,在查询的结果中,结果集的数据行占了表中数据行的很大比 例,即需要在表中搜索的数据行的比例很大。增加索引,并不能明显加快检索速度。

    第三,对于那些定义为text, image和bit数据类型的列不应该增加索引。这是因为,这些列的数据量要么相当大,要么取值很少。

    第四,当修改性能远远大于检索性能时,不应该创建索 引。这是因为,修改性能和检索性能是互相矛盾的。当增加索引时,会提高检索性能,但是会降低修改性能。当减少索引时,会提高修改性能,降低检索性能。因 此,当修改性能远远大于检索性能时,不应该创建索引。

    更多相关内容
  •  同理,SQL Server允许用户在创建索引,指定按某列预先排序,从而大大提高查询速度。  * SQL Server中的数据也是按页( 4KB )存放  * 索引:是SQL Server编排数据的内部方法。它为SQL Server提供一种方法...
  • 数据库中,索引也允许数据库程序迅速地找到中的数据,而不必扫描整个数据库。  二、索引的特点  1.索引可以加快数据库的检索速度  2.索引降低了数据库插入、修改、删除等维护任务的速度  3.索引创建...
  • 数据库索引的优缺点

    2022-05-20 18:03:41
    数据库中,索引也允许数据库程序迅速地找到中的数据,而不必扫描整个数据库。 二、索引的特点 1、索引可以加快数据库的检索速度  2、索引降低了数据库插入、修改、删除等维护任务的速度  3、索引创建上,...

    一、索引的概念

    	索引是加快检索表中数据的方法。数据库的索引类似于书本中的索引。
    	在书本中,索引可以使用户不必翻阅完整个书能迅速地找到所需要的信息。
    	在数据库中,索引也允许数据库程序迅速地找到表中的数据,而不必扫描整个数据库。
    

    二、索引的特点

    	1、索引可以加快数据库的检索速度;
    	2、索引降低了数据库插入、修改、删除等维护任务的速度;
    	3、索引创建在表上,不能创建在视图上;
    	4、索引既可以直接创建,也可以间接创建;
    	5、可以在优化隐藏中,使用索引;
    	6、使用查询处理器执行SQL语句,在一个表上,一次只能使用一个索引。
    

    三、为什么要创建索引呢?

    	这是因为,创建索引能够大大提高系统的性能:
    	1、通过创建性索引,能够保证数据库表中每一行数据的性。
    	2、能够大大加快 数据的检索速度,这也是创建索引的基本的原因。
    	3、能够加速表和表之间的连接,特别是在实现数据的?考完整性方面特别有意义。
    	4、在使用分组和排序 子句进行数据检索时,相同能够显著降低查询中分组和排序的时间。
    	5、通过使用索引,能够在查询的过程中,使用优化隐藏器,提高系统的性能。
    

    四、创建索引的优点:

      	1、提高查询速度 。
    	2、降低查询中分组和排序的时间 。
    	3、可以加速表与表之间的连接 。
     	4、利用索引的唯一性来控制记录的唯一性 。
    

    五、创建索引的缺点:

    	1、存储索引占用磁盘空间。
    	2、 执行数据修改操作(插入、修改、删除等操作)产生索引维护。
    
    展开全文
  • 数据库创建索引有什么优点和缺点1、数据库中索引的优点2、数据库中索引的缺点3、数据库中索引创建的注意事项3.1 哪些列上应该创建索引?3.2 哪些列上不应该创建索引? 1、数据库中索引的优点 为什么要创建索引呢? ...

    1、数据库中索引的优点

    为什么要创建索引呢?
    创建索引可以大大提高系统的性能,优点:

    第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
    第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。
    第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
    第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
    第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

    2、数据库中索引的缺点

    也许会有人要问:增加索引有如此多的优点,为什么不对表中的每一个列创建一个索引呢?
    这种想法固然有其合理性,然而也有其片面性。虽然,索引有许多优点,但是,为表中的每一个列都增加索引,是非常不明智的。
    这是因为,增加索引也有许多不利的一个方面, 缺点:

    第一,创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。
    第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间
    就会更大。
    第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

    3、数据库中索引创建的注意事项

    3.1 哪些列上应该创建索引?

    索引是建立在数据库表中的某些列的上面。因此,在创建索引的时候,应该仔细考虑在哪些列上可以创建索引,在哪些列上不能创建索
    引。一般来说,应该在这些列上创建索引,
    例如:在经常需要搜索的列上,可以加快搜索的速度;

    • 在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构;
    • 在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度;
    • 在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;
    • 在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间;
    • 在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。

    3.2 哪些列上不应该创建索引?

    同样,对于有些列不应该创建索引。一般来说,不应该创建索引的的这些列具有下列特点:
    第一,对于那些在查询中很少使用或者参考的列不应该创建索引。这是因为,既然这些列很少使用到,因此有索引或者无索引,并不能提高查询速度。相反,由于增加了索引,反而降低了系统的维护速度和增大了空间需求。
    第二,对于那些只有很少数据值的列也不应该增加索引。这是因为,由于这些列的取值很少,例如人事表的性别列,在查询的结果中,结果集的数据行占了表中数据行的很大比例,即需要在表中搜索的数据行的比例很大。增加索引,并不能明显加快检索速度。
    第三,对于那些定义为text, image和bit数据类型的列不应该增加索引。这是因为,这些列的数据量要么相当大,要么取值很少。
    第四,当修改性能远远大于检索性能时,不应该创建索引。这是因为,修改性能和检索性能是互相矛盾的。当增加索引时,会提高检索性能,但是会降低修改性能。当减少索引时,会提高修改性能,降低检索性能。因此,当修改性能远远大于检索性能时,不应该创建索引。

    展开全文
  • 第一, 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 第二, 可以大大加快数据的检索速度,这也是创建索引的最主要的原因。 第三, 可以加速表和表之间的连接,特别是在实现数据的参考完整性方面...
  • MySQL数据库创建索引的方法和好处

    MySQL 索引

    数据库创建索引的几种方法

    数据库建表添加索引(一)

    mysql创建索引三种方式

    数据库索引的创建和使用

    Mysql哪些字段适合建立索引

    MySQL索引的创建与使用

    MySQL索引是如何提高查询效率的呢?

    mysql 查询速度_为什么 MySQL 添加索引能提高查询速度?

    MySQL 索引

    MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。

    打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。

    拿汉语字典的目录页(索引)打比方,我们可以按拼音、笔画、偏旁部首等排序的目录(索引)快速查找到需要的字。

    索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列。

    创建索引时,你需要确保该索引是应用在 SQL 查询语句的条件(一般作为 WHERE 子句的条件)。

    实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录。

    上面都在说使用索引的好处,但过多的使用索引将会造成滥用。因此索引也会有它的缺点:虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。

    建立索引会占用磁盘空间的索引文件。

    Mysql哪些字段适合建立索引

    工作中处理数据时,发现某个表的数据达近亿条,所以要为表建索引提高查询性能,以下两篇文章总结的很好,记录一下,以备后用。

    数据库建立索引常用的规则如下:

    • 1、表的主键、外键必须有索引;
    • 2、数据量超过300的表应该有索引;
    • 3、经常与其他表进行连接的表,在连接字段上应该建立索引;
    • 4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;
    • 5、索引应该建在选择性高的字段上;
    • 6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;
    • 7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:
      A、正确选择复合索引中的主列字段,一般是选择性较好的字段;
      B、复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引;
      C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引;
      E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引;
    • 8、频繁进行数据操作的表,不要建立太多的索引;
    • 9、删除无用的索引,避免对执行计划造成负面影响;

    以上是一些普遍的建立索引时的判断依据。
    索引的建立必须慎重,对每个索引的必要性都应该经过仔细分析,要有建立的依据。
    因为太多的索引与不充分、不正确的索引对性能都毫无益处:在表上建立的每个索引都会增加存储开销,索引对于插入、删除、更新操作也会增加处理上的开销。 另外,过多的复合索引,在有单字段索引的情况下,一般都是没有存在价值的;相反,还会降低数据增加删除时的性能,特别是对频繁更新的表来说,负面影响更大。
    总的来说,小型表肯定不建索引,
    或者数据库记录在亿条数据级以上,还是建议使用非关系型数据库。
    还有些特殊字段的数据库,比如BLOB,CLOB字段肯定也不适合建索引。
    其实这个问题更感觉偏向于做软件项目的一种经验。

    对千万级MySQL数据库建立索引的事项及提高性能的手段

    一、注意事项:

    首先,应当考虑表空间和磁盘空间是否足够。我们知道索引也是一种数据,在建立索引的时候势必也会占用大量表空间。因此在对一大表建立索引的时候首先应当考虑的是空间容量问题。
    其次,在对建立索引的时候要对表进行加锁,因此应当注意操作在业务空闲的时候进行。

    二、性能调整方面:

    首当其冲的考虑因素便是磁盘I/O。物理上,应当尽量把索引与数据分散到不同的磁盘上(不考虑阵列的情况)。逻辑上,数据表空间与索引表空间分开。这是在建索引时应当遵守的基本准则。

    其次,我们知道,在建立索引的时候要对表进行全表的扫描工作,因此,应当考虑调大初始化参数db_file_multiblock_read_count的值。一般设置为32或更大。

    再次,建立索引除了要进行全表扫描外同时还要对数据进行大量的排序操作,因此,应当调整排序区的大小。

    9i之前,可以在session级别上加大sort_area_size的大小,比如设置为100m或者更大。

    9i以后,如果初始化参数workarea_size_policy的值为TRUE,则排序区从pga_aggregate_target里自动分配获得。

    最后,建立索引的时候,可以加上nologging选项。以减少在建立索引过程中产生的大量redo,从而提高执行的速度。

    MySql在建立索引优化时需要注意的问题

    设计好MySql的索引可以让你的数据库飞起来,大大的提高数据库效率。设计MySql索引的时候有以下几点注意:

    1,创建索引

    对于查询占主要的应用来说,索引显得尤为重要。很多时候性能问题很简单的就是因为我们忘了添加索引而造成的,或者说没有添加更为有效的索引导致。如果不加索引的话,那么查找任何哪怕只是一条特定的数据都会进行一次全表扫描,如果一张表的数据量很大而符合条件的结果又很少,那么不加索引会引起致命的性能下降。但是也不是什么情况都非得建索引不可,比如性别可能就只有两个值,建索引不仅没什么优势,还会影响到更新速度,这被称为过度索引。

    2,复合索引

    比如有一条语句是这样的:select * from users where area=’beijing’ and age=22;
    如果我们是在area和age上分别创建单个索引的话,由于mysql查询每次只能使用一个索引,所以虽然这样已经相对不做索引时全表扫描提高了很多效 率,但是如果在area、age两列上创建复合索引的话将带来更高的效率。如果我们创建了(area, age, salary)的复合索引,那么其实相当于创建了(area,age,salary)、(area,age)、(area)三个索引,这被称为最佳左前缀
    特性。因此我们在创建复合索引时应该将最常用作限制条件的列放在最左边,依次递减。

    3,索引不会包含有NULL值的列

    只要列中包含有NULL值都将不会被包含在索引中,复合索引中只要有一列含有NULL值,那么这一列对于此复合索引就是无效的。所以我们在数据库设计时不要让字段的默认值为NULL。

    4,使用短索引

    对串列进行索引,如果可能应该指定一个前缀长度。例如,如果有一个CHAR(255)的 列,如果在前10 个或20 个字符内,多数值是惟一的,那么就不要对整个列进行索引。短索引不仅可以提高查询速度而且可以节省磁盘空间和I/O操作。

    5,排序的索引问题

    mysql查询只使用一个索引,因此如果where子句中已经使用了索引的话,那么order by中的列是不会使用索引的。因此数据库默认排序可以符合要求的情况下不要使用排序操作;尽量不要包含多个列的排序,如果需要最好给这些列创建复合索引。

    6,like语句操作

    一般情况下不鼓励使用like操作,如果非使用不可,如何使用也是一个问题。like “%a%” 不会使用索引而like “aaa%”可以使用索引。

    7,不要在列上进行运算

    select * from users where YEAR(adddate)

    8,不使用NOT IN和操作

    NOT IN操作不会使用索引将进行全表扫描。NOT IN可以NOT EXISTS代替

    展开全文
  •  第一,通过创建性索引,能够保证数据库表中每一行数据的性。  第二,能够大大加快 数据的检索速度,这也是创建索引的基本的原因。  第三,能够加速表和表之间的连接,特别是在实现数据的?考完整性方面特别...
  • 索引缺点 需要占用磁盘空间,因此冗余低效的索引将占用大量的磁盘空间 降低DML性能,对于数据的任意增删改都需要调整对应的索引,甚至出现索引分裂 索引会产生相应的碎片,产生维护开销 一、explain 用法:...
  • 说一下数据库有哪些索引类型,什么优缺点

    万次阅读 多人点赞 2019-09-04 09:09:04
    索引的几种类型分别是普通索引、唯一索引、聚集索引、主键索引、全文索引几种。 使用索引的优点: 提高数据的搜索速度 加快之间的连接速度 在信息检索过程中,若使用分组及排序子句进行时,...在创建索引的...
  • 1.索引就像是书的目录,是与或视图关联的磁盘上结构,可以加快从或视图中检索行的速度。索引中包含由或视图中的一列或多列生成的键。这些键存储在一个结构(BTree)中,使SQL可以快速有效地查找与键值关联的行...
  • 数据库表结构及索引设计

    千次阅读 2021-12-13 20:31:52
    数据库表设计上个很重要的设计准则,称为范式设计。 范式设计 什么是范式? 范式来自英文Normal Form,简称NF。MySQL是关系型数据库,但是要想设计—个好的关系,必须使关系满足一定的约束条件,此约束已经...
  • 以下的文章主要介绍的是MySQL索引缺点以及MySQL索引在实际操作中哪些事项是值得我们大家注意的,我们大家可能不知道过多的对索引进行使用将会造成滥用。因此MySQL索引也会它的缺点: 虽然索引大大提高了查询...
  • 数据库索引是什么 什么优缺点

    千次阅读 多人点赞 2018-12-14 11:05:57
    数据库索引是什么 数据库索引是:数据库索引就像是一本书的目录一样,使用它可以让你在数据库里搜索查询的速度大大提升。而我们使用索引的目的就是,加快中的查找和排序。索引的几种类型分别是普通索引、唯一...
  • MySQL数据库索引的优点及缺点

    千次阅读 2021-09-01 20:23:31
    1)创建索引可以大幅提高系统性能,帮助用户提高查询的速度; 2)通过索引的唯一性,可以保证数据库表中的每一行数据的唯一性; 3)可以加速表与表之间的链接; 4)降低查询中分组和排序的时间。 当然了,没有...
  • SQL数据库索引缺点

    千次阅读 2019-01-07 19:54:22
    索引对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。   优点 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。  可以大大加快数据的检索速度,这也是...
  • 数据库创建索引的利弊

    千次阅读 2021-01-28 01:17:29
    索引就像是书的目录,是与或...2.为什么要建立索引,即索引的优点:①建立索引的列可以保证行的唯一性,生成唯一的rowId②建立索引可以有效缩短数据的检索时间③建立索引可以加快之间的连接④为用来排序或...
  • 索引是一种特殊的文件(InnoDB数据上的索引空间的一个组成部分),它们包含着数据表里所有记录的引用指针。 注: [1]索引不是万能的!索引可以加快数据检索操作,但会使数据修改操作变慢。每修改数据记录,...
  • 数据库表添加索引对性能的影响

    千次阅读 2019-03-25 10:56:55
    1.添加索引后查询速度会变快  mysql中索引是存储引擎层面用于快速查询找到记录的一种...在经常需要搜索的列上创建索引,可以加快搜索的速度。如果中数据少的话,没必要用索引,如果中数据很多的话,还是索引...
  • 数据库创建表

    千次阅读 2022-06-24 17:38:40
    数据库
  • 单列索引(主键索引,唯一索引,普通索引)和多列索引(组合索引),全文索引 主键索引 唯一索引 普通索引 多列索引 全文索引 2、按数据结构分类 1) B+tree索引 b+tree基于平衡二叉树的一种多路平衡查找树,所有记录...
  • 数据库 索引的优点和缺点

    千次阅读 多人点赞 2019-04-12 20:29:42
    第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 第二,可以大大加快 数据的检索速度,这也是创建索引的最主要的原因。 第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面...
  • 主流数据库索引及其例子

    千次阅读 多人点赞 2022-04-10 22:36:25
    创建创建索引 修改创建索引 创建索引注意事项 索引性能分析 查看profile是否开启的 设置开启profile 查看SQL执行的耗时详情 删除索引 利用drop index语句删除索引 利用alter table语句删.
  • 第一、通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 第二、可以大大加快 数据的检索速度,这也是创建索引的最主要的原因。 第三、可以加速表和表之间的连接,特别是在实现数据的参考完整性方面...
  • 索引就像是书的目录,是与或视图关联的磁盘上结构,可以加快从或视图中检索行的速度。索引中包含由或视图中的一列或多列生成的键。这些键存储在一个结构(BTree)中,使SQL可以快速有效地查找与键值关联的行。...
  • 数据库联合索引

    千次阅读 2022-04-11 15:34:15
    数据库索引、优化、联合索引、组合索引
  • 2、创建唯一性索引,保证数据库表中每一行数据的唯一性; 3、加速表和表之间的连接; 4、在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间。 缺点: 1、索引需要占物理空间。 2、当对表中的...
  • 数据库索引详解

    万次阅读 多人点赞 2021-11-17 19:16:13
    数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询,更新数据库的数据。索引的实现通常使用B树和变种的B+树(MySQL常用的索引就是B+树)。除了数据之外,数据库系统还维护为满足特定查找算法的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 100,011
精华内容 40,004
热门标签
关键字:

对数据库表创建索引的缺点有