创建索引的原则

1、索引创建原则:

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

2、无需创建索引的情况

  • 定义为text、image和bit数据类型的列不应该增加索引。
  • 当修改性能远远大于检索性能时,不应该创建索引。修改性能和检索性能时互相矛盾的。当增加索引时,会提高检索性能,但是会降低修改性能。
  • 在查询中很少使用或者参考的列不应该创建索引。既然这些列很少用到,因此有无索引并不能明显改变查询速度。相反,由于增加了索引,反而降低了系统的维护速度和增大空间需求。
  • 只有很少数据值的列也不应该增加索引。由于这些列的取值很少,增加索引并不能明显加快检索速度。
时间: 2024-10-13 16:20:38

创建索引的原则的相关文章

数据库创建索引的原则

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

mysql创建索引的原则

在mysql中使用索引的原则有以下几点: 1. 对于查询频率高的字段创建索引: 2. 对排序.分组.联合查询频率高的字段创建索引: 3. 索引的数目不宜太多 原因:a.每创建一个索引都会占用相应的物理控件:           b.过多的索引会导致insert.update.delete语句的执行效率降低: 4.若在实际中,需要将多个列设置索引时,可以采用多列索引 如:某个表(假设表名为Student),存在多个字段(StudentNo, StudentName, Sex, Address, P

mysql索引建立原则

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

SQL Server 查询性能优化——创建索引原则(二)

三:索引的建立原则 一般来说,建立索引要看数据使用的场景,换句话来说哪些访问数据的SQL语句是常用的,而这些语句是否因为缺少索引(也有可能是索引过多)变的效率低下.但绝不是所有的SQL语句都要建立索引,如果所有的SQL语句都建立索引,那么可能导致建立过多的索引. 我碰到过每秒钟新增记录超过千条的案例,虽然该数据表仅有聚集索引,但因为已存在的键值字段的值和新增数据键值字段的值并不是按顺序递增,每次新增记录时,肯定造成整体数据行的重新排列.在移掉聚集索引后,性能约提升20%.也曾经碰到过一个数据表上

转载——数据库创建索引的一些原则

转载自:http://blog.csdn.net/tenfyguo/article/details/3974448 一,经常被用来过滤记录的字段. 1. primary key 字段, 系统自动创建主键的索引: 2. unique kye 字段,系统自动创建对应的索引; 3. foreign key 约束所定义的作为外键的字段; 4. 在查询中用来连接表的字段; 5. 经常用来作为排序(order by 的字段)基准的字段; 二. 索引会占用磁盘空间,创建不必要的索引只会形成浪费. 三. 索引的

MySql 创建索引原则

https://blog.csdn.net/csdnones/article/details/50412603 为了使索引的使用效率更高,在创建索引时,必须考虑在哪些字段上创建索引和创建什么类型的索引.本小节将向读者介绍一些索引的设计原则. 1.选择唯一性索引 唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录.例如,学生表中学号是具有唯一性的字段.为该字段建立唯一性索引可以很快的确定某个学生的信息.如果使用姓名的话,可能存在同名现象,从而降低查询速度. 2.为经常需要排序.分组和联合

SQL Server 查询性能优化——创建索引原则(一)

索引是什么?索引是提高查询性能的一个重要工具,索引就是把查询语句所需要的少量数据添加到索引分页中,这样访问数据时只要访问少数索引的分页就可以.但是索引对于提高查询性能也不是万能的,也不是建立越多的索引就越好.索引建少了,用WHERE子句找数据效率低,不利于查找数据.索引建多了,不利于新增.修改和删除等操作,因为做这些操作时,SQL SERVER除了要更新数据表本身,还要连带地立即更新所有的相关索引,而且过多的索引也会浪费硬盘空间.因此要建得恰到好处,这就需要经验了. 一:索引的基本目的 索引的基

(转)SQL Server创建索引

什么是索引拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQL Server中的数据记录也是按页存放的,每页容量一般为4K .为了加快查找的速度,汉语字(词)典一般都有按拼音.笔画.偏旁部首等排序的目录(索引),我们可以选择按拼音或笔画查找方式,快速查找到需要的字(词).同理,SQL Server允许用户在表中创建索引,指定按某列预先排序,从而大大提高查询速度.? SQL Server中的数据也是按页( 4KB )存放? 索引:是SQL Server编排数据的内部方法.它为

Mysql设计索引的原则

内容来自书籍<深入浅出MySQL++数据库开发.优化与管理维护+第2版+唐汉明> 设计索引的原则1. 搜索的索引列,不一定是所要选择的列.换句话说,最适合索引的列是出现在 WHERE 子句中的列,或连接子句中指定的列,而不是出现在 SELECT 关键字后的选择列表中的 列 .2. 使用惟一索引.考虑某列中值的分布.对于惟一值的列,索引的效果最好,而具有多个重复值的列,其索引效果最差.例如,存放年龄的列具有不同值,很容易区分各行.而用来记录性别的列,只含有 " M " 和 &