一、数据库中创建索引的优点
1、创建唯一性索引,保证数据库表中每一行数据的唯一性。
2、加快数据的检索速度,这也是创建索引的最主要的原因。
3、减少磁盘IO(向字典一样可以直接定位)。
4、通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
5、加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
二、数据库中创建索引的缺点
1、创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。
2、索引需要占用物理空间,特别是聚集索引,需要较大的空间。
3、当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。
扩展资料:
索引的功能
1、分解功能
把文献中的资料单元(如篇名、机构、短语、概念、物名、地名、书名、人名、字词、符号等)一一分解,这就是索引的分解功能。它是索引工作的起跑线和索引编纂的基础,没有对文献内容的这种分解功能,就没有索引。分解功能是索引作用于文献的特殊功能,是它和其他检索工作不同之处。
2、梳理功能
梳理功能是索引分解的后继。如果只有分解功能而没有梳理的功能,那么分解功能就没有价值。梳理是对资料单元的初分。如是字序,只要按笔划或音序归类即可;如是类序只要按大类归纳即可。就像小姑娘梳头,先把长发梳顺,而编什么辫子或梳什么发型则是下一步的要求了。
3、组合功能
把梳理后的资料单元按照分类的要求,严密地组织它们的类别层次以及类目下的专题和同类目下款目的序列关系;或按字序的要求,严密地把标目的结构正装 或倒装、考虑限定词对标目的限定和修饰的级数、或考虑字序和类序相结合的可能。
参考资料:
语法:
CREATE [索引类型] INDEX 索引名称
ON 表名(列名)
WITH FILLFACTOR = 填充因子值0~100
GO
/实例/
USE 库名
GO
IF EXISTS (SELECT FROM SYSINDEXES WHERE NAME='IX_TEST_TNAME')--检测是否已经存在IX_TEST_TNAME索引
DROP INDEX TESTIX_TEST_TNAME--如果存在则删除
--创建索引
CREATE NONCLUSTERED INDEX IX_TEST_TNAME --创建一个非聚集索引
ON TEST(TNAME) --为TEST表的TNAME字段创建索引
WITH FILLFACTOR = 30 --填充因子为30%
GO
附录:
1什么是索引:数据库中的索引是某个表中一列或多列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。
2分类:
唯一索引(UNIQUE):不允许两行具有相同的索引值(创建了唯一约束,系统将自动创建唯一索引)
主键索引:主键索引要求主键中的每个值是唯一的,(创建主键自动创建主键索引)
聚集索引(CLUSTERED):表中各行的物理顺序与键值的逻辑(索引)顺序相同,表中只能包含一个聚集索引,主键列默认为聚集索引
非聚集索引(NONCLUSTERED):表中各行的物理顺序与键值的逻辑(索引)顺序不匹配,表中可以有249个非聚集索引
3创建索引的标准:用语频繁搜索的列;用语对数据进行排序的列
以上就是关于数据库创建索引有什么优点和缺点全部的内容,包括:数据库创建索引有什么优点和缺点、sqlserver 怎么建索引、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)