美文网首页
数据库索引小记

数据库索引小记

作者: pysasuke | 来源:发表于2017-05-17 14:47 被阅读0次

索引的实现方式
  数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树
  B-Tree中一次检索最多需要h-1次I/O(根节点常驻内存),渐进复杂度为O(h)=O(logdN)。一般实际应用中,出度d是非常大的数字,通常超过100,因此h非常小(通常不超过3)。
  而红黑树这种结构,h明显要深的多。由于逻辑上很近的节点(父子)物理上可能很远,无法利用局部性,所以红黑树的I/O渐进复杂度也为O(h),效率明显比B-Tree差很多。

索引种类
根据数据库的功能,可以在数据库设计器中创建四种索引:
  唯一索引、非唯一索引、主键索引和聚集索引。 尽管唯一索引有助于定位信息,但为获得最佳性能结果,建议改用主键或唯一约束。
  注意:在数据库关系图中为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。当在查询中使用主键索引时,它还允许对数据的快速访问。

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

  • 表的主键、外键必须有索引
  • 数据量超过300的表应该有索引
  • 经常与其他表进行连接的表,在连接字段上应该建立索引
  • 经常出现在Where子句中的字段,特别是大表的字段,应该建立索引
  • 索引应该建在选择性高的字段上
  • 索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引
  • 复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:
    • 正确选择复合索引中的主列字段,一般是选择性较好的字段;

    • 复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引;

    • 如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引;

    • 如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段;

    • 如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引;

  • 频繁进行数据操作的表,不要建立太多的索引
  • 删除无用的索引,避免对执行计划造成负面影响

相关文章

  • 数据库索引小记

    索引的实现方式数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常...

  • 数据库索引小记

    一、通俗解释 数据库索引就是在一个或者几个列上创建的一种用于提高数据库查询速度的对象,可以把它想象成字典中的目录。...

  • 数据库索引记录

    本文用来记录数据库索引相关内容; 1】数据库索引分为单列索引,组合索引,全文索引,空间索引 2】单列索引:只有一个...

  • 索引,序列,视图

    1、数据库索引索引是数据库对象之一,用于加快数据的检索,类似于书籍的索引。在数据库中索引可以减少数据库程序查询结果...

  • Sql索引优化—转载

    数据库索引使用方式 使用索引是提高数据库查询效率的主要方式,下面从索引结构,索引类型,索引操作,命中索引几个方面来...

  • 数据库 - 索引

    索引 索引 索引的建立对于数据库的高效运行是很重要的。索引可以大大提高数据库的检索速度。 索引分单列索引,组合索引...

  • [Mysql]Mysql索引实现原理及相关优化策略

    数据库索引 数据库索引是什么? A database index is a data structure that...

  • 数据库索引定义和类型

    数据库索引类型及实现方式 1、索引定义 数据库索引好比是一本书前面的目录,能加快数据库的查询速度。索引是对数据库表...

  • 数据库索引结构总结

    [TOC] 参考 数据库索引数据结构总结 本文摘抄自数据库索引数据结构总结 1. 摘要 数据库索引是数据库中最重要...

  • MySQL 索引

    MySQL 索引 数据库索引的原理:数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表...

网友评论

      本文标题:数据库索引小记

      本文链接:https://www.haomeiwen.com/subject/zhydxxtx.html