美文网首页
数据库索引原理

数据库索引原理

作者: smallThree1 | 来源:发表于2017-10-19 11:55 被阅读81次

之前去到携程面试的时候遇到面试数据库索引原理的问题特在此记录一下

以mysql为例,主要使用hash或者b+tree来实现索引的存储

Q1 : hash索引是什么

hash结构存储 : 很简单,就是利用hash算法实现索引查找,hash索引的特点是无法实现范围查找,因为本身hash算法就是实现key-value式的对应,还有就是hash的查找效率很高,时间复杂度应该是O(1)

Q2 : B+tree索引是什么

B+tree结构 : 类似于二叉树的存储,算法逻辑上来讲二叉树的查找效率为O(logn),用二叉树存储应该最好,但是实际情况中为了减少磁盘IO的操作数而采用b-tree来存储文件,因为二叉树的最坏结果,磁盘IO的操作数可能就是二叉树的高度,所以最好降低二叉树的高度,B-tree实际的操作数据不比二叉树少,但是B-tree有一部分操作是内存中的比较操作来取代磁盘IO操作,所以可以提高实际的查找效率

Q3 : 什么是聚集索引什么又是非聚集索引

聚集索引 : 聚集索引将会决定数据在磁盘中的物理顺序,该索引一张表只有一个,一般就是主键,所以这就是为什么每张表都应该有一个主键。

非聚集索引 : 通常意义情况下的索引,独立于数据存在,只包含被建立索引的数据,以及一个行定位符,可以理解为一个聚集索引物理排序的指针,通过这个指针,可以找到行数据

Q4: 什么是联合索引以及特点

联合索引:多个字段上建立的索引,能够加速符合查询条件的检索,满足最左前缀原则 a,b,c 满足a | a,b |a,b,c

Q5 : 什么是覆盖索引

覆盖索引 : 如果查询的数据在索引中存在,则直接返回而不会再查询(一般以联合索引实现)

---未完待续

相关文章

  • 索引

    数据库索引的实现原理

  • MySQL索引原理详解

    学习MySQL数据库索引原理知识,同时了解与性能相关的优化实践。 讲述关于索引的原理,为后面数据库优化提供合适的方...

  • 数据库索引

    数据库索引 数据库的索引原理都是一样,这里我举的例子的索引指的是mysql的@[toc] 概述: 大家都知道,索引...

  • MySQL 索引

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

  • 数据库存储原理特性索引优化

    说一下mysql数据库存储的原理? 事务的特性? 数据库索引 数据库怎么优化查询效率? 数据库优化方案 优化索引、...

  • 最新Java面试300题:腾讯T4面试+美团+京东+拼多多(文末

    数据库原理 MYISAM与innodb搜索引擎原理MyISAM引擎使用B+Tree作为索引结构,叶节点的data域...

  • Mysql数据库索引原理

    MySql数据库索引原理 写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑...

  • 关于索引

    目录 1.索引的概念; 2.索引的分类; 3.索引的结构和原理; 4.索引的使用策略; 一.概念 在解释数据库索引...

  • 索引使用策略

    一、示例数据库本文选用MySQL官方文档中提供的示例数据库之一:employees。 二、命中索引原理高效使用索引...

  • MySql数据库面试常见问题

    1.数据库索引实现原理数据库的索引是在存储引擎层实现的,不同的存储引擎有不同的实现方法,索引一般指的是B-Tree...

网友评论

      本文标题:数据库索引原理

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