美文网首页MySQL程序员高性能MySQL
MySQL实战 | 05 如何设计高性能的索引?

MySQL实战 | 05 如何设计高性能的索引?

作者: hoxis | 来源:发表于2018-12-14 09:14 被阅读11次

原文链接:MySQL | 05 如何设计高性能的索引?

上回我们主要研究了为什么使用索引,以及索引的数据结构。今天带你了解如何设计高性能的索引。

其中,有这么一个点,说的是 InnoDB 引擎中使用的是聚簇索引,其主索引的实现树中的叶子结点存储的是完整的数据记录,而辅助索引中存储的则只是辅助键和主键的值。

这样在用辅助索引进行查询时,会先查出主键的值,然后再去主索引中根据主键的值查询目标值。

比如,假想一个表如下图存储了 4 行数据。其中 Id 作为主索引,Name 作为辅助索引。

Id Name Company
5 Gates Microsoft
7 Bezos Amazon
11 Jobs Apple
14 Ellison Oracle

对于聚簇索引,若使用主键索引进行查询,select * from tab where id = 14 这样的条件查找主键,则按照 B+ 树的检索算法即可查找到对应的叶节点,之后获得行数据。

若使用辅助索引进行查询,对 Name 列进行条件搜索,则需要两个步骤:

1、第一步在辅助索引 B+ 树中检索 Name,到达其叶子节点获取对应的主键值。
2、第二步根据主键值在主索引 B+ 树中再执行一次 B+ 树检索操作,最终到达叶子节点即可获取整行数据。

上面这个过程称为回表

你的关注是对我最大的鼓励!

最近搜集到传智播客 2018 最新 Python 和 Java 教程!关注本公众号,后台回复「2018」即可获取下载地址。

公众号提供CSDN资源免费下载服务!


相关文章

  • MySQL实战 | 05 如何设计高性能的索引?

    原文链接:MySQL | 05 如何设计高性能的索引? 上回我们主要研究了为什么使用索引,以及索引的数据结构。今天...

  • MySQL书目

    MySQL数据库索引设计与优化 MySQL技术内幕 MySQL排错指南 高性能MySQL MySQL DBA修炼之道

  • 学习的技术栈,技术书籍必看for me

    《高性能MySQL》 《数据库索引设计与优化》 《MySQL技术内幕:InnoDB存储引擎》 《数据结构与算法分析...

  • Mysql索引读书笔记

    ################################## 高性能Mysql第5章:索引基础 #####...

  • 如何构建高性能MySQL索引

    本文的重点在于如何构建一个高性能的MySQL索引,从中你可以学到如何分析一个索引是不是好索引,以及如何构建一个好的...

  • face17 mysql创建高性能索引

    mysql创建高性能索引 简单描述 mysql中 索引 主键 唯一索引 联合索引的区别对数据库性能有什么影响 创建...

  • mysql索引最左匹配原则的理解

    在读 【高性能MySQL(第3版)】在讲到如何正确使用 mysql 索引时,着重提到了一个最左匹配原则。今...

  • MySQL联合索引运用-最左匹配原则

    前言 之前看了很多关于MySQL索引的文章也看了《高性能MySQL》这本书,自以为熟悉了MySQL索引使用原理,入...

  • 《高性能mysql》------ 索引(一)

    mysql索引 最近一直在看《高性能mysql》,关于索引部分,以前接触过,但是不是特别深入,仅仅了解过主键索引,...

  • MySQL索引

    原文《MySQL实战45讲》 前言 ​ 在日常工作中经常接触到数据库索引,但到底什么是索引,索引又是如何工作的...

网友评论

    本文标题:MySQL实战 | 05 如何设计高性能的索引?

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