数据库索引原理及优化——大纲

  最近项目上碰到一个大数据量处理的问题,想着对数据库进行优化。在网上找到一篇对索引讲解比较好的文章,就拿过来用了。不过写的有点长,自作主张,把它拆分一下,容易阅读一些。当然,想阅读原文的请点击原文链接https://www.cnblogs.com/wuchanming/p/6886020.html

摘要

本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。

索引的本质

MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是数据结构。

目录

由于篇幅较长,将文章做了一定的拆分,后续将按以下顺序进行:

1、常见的查询算法及数据结构

建立索引,其实就是为了构建一种数据结构,可以在上面应用一种高效的查询算法,最终提高数据的查询速度。

2、索引数据结构设相关的计算机原理

文件系统及数据库系统普遍采用B-/+Tree作为索引结构,这一节将结合计算机组成原理相关知识讨论B-/+Tree作为索引的理论基础。

3、数据库索引所采用的数据结构B-/+Tree及其性能分析

4、MySQL索引实现

在MySQL中,索引属于存储引擎级别的概念,不同存储引擎对索引的实现方式是不同的,本文主要讨论MyISAM和InnoDB两个存储引擎的索引实现方式。

5、索引使用策略及优化

MySQL的优化主要分为结构优化(Scheme optimization)和查询优化(Query optimization)。本章讨论的高性能索引策略主要属于结构优化范畴。本章的内容完全基于上述的理论基础,实际上一旦理解了索引背后的机制,那么选择高性能的策略就变成了纯粹的推理,并且可以理解这些策略背后的逻辑。

posted @ 2019-04-03 20:32  展翅肥羊  阅读(176)  评论(0)    收藏  举报