索引建立原则

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

索引建立原则的相关文章

mysql索引建立原则

看了网上一些网上关于创建索引的原则,在这里做一下总结: 1.尽量创建在使用频率较高的字段上,比如主键,外键,where总用到的字段,join是相关联的字段 2.如果表过大,一定要创建索引. 3.索引应该尽量建在一些长度比较小的字段上,减少索引查询时间 4.删除不用的,或很少使用的索引 5.欢迎补充 原文地址:https://www.cnblogs.com/duodushuduokanbao/p/9629745.html

索引优化原则及Oracle中索引总结

索引建立原则 确定针对该表的操作是大量的查询操作还是大量的增删改操作. 尝试建立索引来帮助特定的查询.检查自己的sql语句,为那些频繁在where子句中出现的字段建立索引. where语句中不得不对查询列采用函数查询,如upper函数,最好建立相应函数索引: 在SQL语句中经常进行GROUP BY.ORDER BY的字段上建立索引 用于联接的列(主健/外健)上建立索引: 在经常存取的多个列上建立复合索引,但要注意复合索引的建立顺序要按照使用的频度来确定: 尝试建立复合索引来进一步提高系统性能.修

数据库、数据表建立索引的原则

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

索引建立的原则

数据库建立索引的原则 铁律一:天下没有免费的午餐,使用索引是需要付出代价的 索引的优点有目共睹, 但是, 却很少有人关心过采用索引所需要付出的成本. 若数据库管理 员能够对索引所需要付出的代价有一个充分的认识,也就不会那么随意到处建立索引了. 仔细数数, 其实建立索引的代价还是蛮大的. 如创建索引和维护索引都需要花费时间与精力. 特别是在数据库设计的时候,数据库管理员为表中的哪些字段需 要建立索引,要调研.要 协调. 如当建有索引的表中的纪录又增加.删除. 修改操作时,数据库要对索引进行重新调

建立索引的原则

动作描述 使用聚集索引 使用非聚集索引 列经常被分组排序 应 应 返回某范围内的数据 应 不应 一个或极少不同值 不应 不应 小数目的不同值 应 不应 大数目的不同值 不应 应 频繁更新的列 不应 应 外键列 应 应 主键列 应 应 建立索引的原则

数据库建立索引的原则

铁律一:天下没有免费的午餐,使用索引是需要付出代价的. 索引的优点有目共睹,但是,却很少有人关心过采用索引所需要付出的成本.若数据库管理员能够对索引所需要付出的代价有一个充分的认识,也就不会那么随意到处建立索引了. 仔细数数,其实建立索引的代价还是蛮大的.如创建索引和维护索引都需要花费时间与精力.特别是在数据库设计的时候,数据库管理员为表中的哪些字段需要建立索引,要调研.要协调.如当建有索引的表中的纪录又增加.删除.修改操作时,数据库要对索引进行重新调整.虽然这个工作数据库自动会完成,但是,需要

MySQL 索引优化原则

一.索引优化原则 1.最左前缀匹配原则,联合索引,mysql会从做向右匹配直到遇到范围查询(>.<.between.like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整. 2.=和in可以乱序,比如a = 1 and b = 2 and c = 3 建立(a,b,c)索引可以任意顺序,mysql的查询优化器会帮你优

数据库创建索引的原则

数据库建立索引的原则 铁律一:天下没有免费的午餐,使用索引是需要付出代价的 索引的优点有目共睹,但是,却很少有人关心过采用索引所需要付出的成本.若数据库管理员能够对索引所需要付出的代价有一个充分的认识,也就不会那么随意到处建立索引了.仔细数数,其实建立索引的代价还是蛮大的.如创建索引和维护索引都需要花费时间与精力.特别是在数据库设计的时候,数据库管理员为表中的哪些字段需要建立索引,要调研.要协调.如当建有索引的表中的纪录又增加.删除.修改操作时,数据库要对索引进行重新调整. 虽然这个工作数据库自

mysql 索引建立

如何建立mysql索引? 创建索引原则 1.左前缀原则 : mysql索引匹配会从右匹配,到遇到( >  < between like)终止.如 我们建立索引(a,b,c,d), a = 1 and  b=2 and  c>3 and d=4.此时,索引d不会被用上.真正有效的索引(a, b, c).如果把索引建立成(a,b,d,c), 则四个索引都能被用上 2.in 和  = 顺序可以随意. 如可建立索引(a, b , c)任意顺序 ,  a = 1 and  c=2 and  b=3