文档章节

数据库索引

诡道
 诡道
发布于 2015/12/16 22:08
字数 411
阅读 26
收藏 0

索引是什么

    索引是一种为了实现快速查找算法的数据结构。

        利用优于顺序查找的算法查询数据,需要特定的数据结构,这种数据结构就是数据库的索引

      索引以某种方式引用数据

        顺序查找复杂度O(n)

索引越多越好吗

    因为要更新索引,所以建立索引利于查询不利于更改(添加,删除,修改)。

    频繁操作的表不要添加过多的索引。

    索引过多可能也不利于数据的读取,要扫描多份索引

通常索引建立在哪些列

    经常需要搜索的列(加快搜索的速度)

    主键(强制该列的唯一性和组织表中数据的排列结构)

    经常用在连接的列(主要是一些外键, 可以加快连接的速度)

    经常需要根据范围进行搜索的列(因为索引已经排序,其指定的范围是连续的)

    经常需要排序的列(因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间)

    经常使用在WHERE子句中的列(加快条件的判断)

通常什么时候不建立索引

    1,表记录比较少

    2,索引的选择性较低

    索引的选择性(Selectivity),是指不重复的索引值(也叫基数,Cardinality)与表记录数(#T)的比值:

    Index Selectivity = Cardinality / #T(显然选择性的取值范围为(0, 1],选择性越高的索引价值越大)

© 著作权归作者所有

上一篇: php知识点
下一篇: 理解 IOC/DI 模式
诡道
粉丝 52
博文 9
码字总数 4561
作品 1
海淀
程序员
私信 提问

暂无文章

Angular 英雄编辑器

应用程序现在有了基本的标题。 接下来你要创建一个新的组件来显示英雄信息并且把这个组件放到应用程序的外壳里去。 创建英雄组件 使用 Angular CLI 创建一个名为 heroes 的新组件。 ng gener...

honeymoose
今天
5
0
Kernel DMA

为什么会有DMA(直接内存访问)?我们知道通常情况下,内存数据跟外设之间的通信是通过cpu来传递的。cpu运行io指令将数据从内存拷贝到外设的io端口,或者从外设的io端口拷贝到内存。由于外设...

yepanl
今天
6
0
hive

一、hive的定义: Hive是一个SQL解析引擎,将SQL语句转译成MR Job,然后再在Hadoop平台上运行,达到快速开发的目的 Hive中的表是纯逻辑表,就只是表的定义,即表的元数据。本质就是Hadoop的目...

霉男纸
今天
5
0
二、Spring Cloud—Eureka(Greenwich.SR1)

注:本系列文章所用工具及版本如下:开发工具(IDEA 2018.3.5),Spring Boot(2.1.3.RELEASE),Spring Cloud(Greenwich.SR1),Maven(3.6.0),JDK(1.8) Eureka: Eureka是Netflix开发...

倪伟伟
昨天
15
0
eclipse常用插件

amaterasUML https://takezoe.github.io/amateras-update-site/ https://github.com/takezoe/amateras-modeler modelGoon https://www.cnblogs.com/aademeng/articles/6890266.html......

大头鬼_yc
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部