因为我们大多数情况下使用的都是Innodb,所以这篇博客主要依据Innodb来讲

b+树(图片来自网络)

b+树图来自网络

1.聚集索引与非聚集索引区别

聚集索引:叶子节点包含完整的数据(物理地址连续),叫做聚集索引

非聚集索引(又称辅助索引):它的叶子节点并不包含行记录的全部数据,叶子结点除了包含键值以外,每个叶子结点中的索引行还包含了一个书签,该书签用来告诉存储引擎可以在哪找到相应的数据行。需要引用主索引作为data域,其实原理就是直接通过辅助索引无法找到数据,需要通过辅助索引找到主键,然后再根据主索引去查找其对应叶子节点的数据。其过程就是(辅助索引+主键+columns值)。

2.分页需要优化原因

例:select a from table where b=1

①如果b字段没有索引,则数据库会进行全表扫描,扫描所有的数据库

②如果b字段有索引,索引需要扫描3个数据块

⑴获取所有b=1的主键与其rowid

⑵再根据rowid查找数据。

⑶如果数据不在该数据块回表,如果a在索引中则不会表。

其缓慢的原因其实是因为辅助索引需要回表去根据主键再去查询。

3.分页具体实现

例:select book_name,book_info from libary limit 20000,10 (表主键为其id)

覆盖索引:包含所有满足查询需要的索引成为覆盖索引

即(id,book_name,book_info)作为组合索引,就是覆盖索引的一种体现

  

Mysql性能优化之覆盖索引的更多相关文章

  1. MySQL性能优化(三):索引

    原文:MySQL性能优化(三):索引 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/vbi ...

  2. [MySQL性能优化系列] 聚合索引

    1. 普通青年的索引使用方式 假设我们有一个用户表 tb_user,内容如下: name age sex jack 22 男 rose 21 女 tom 20 男 ... ... ... 执行SQL语 ...

  3. Mysql性能优化:为什么要用覆盖索引?

    导读 相信读者看过很多MYSQL索引优化的文章,其中有很多优化的方法,比如最佳左前缀,覆盖索引等方法,但是你真正理解为什么要使用最佳左前缀,为什么使用覆盖索引会提升查询的效率吗? 本篇文章将从MYSQ ...

  4. [MySQL性能优化系列]巧用索引

    1. 普通青年的索引使用方式 假设我们有一个用户表 tb_user,内容如下: name age sex jack 22 男 rose 21 女 tom 20 男 ... ... ... 执行SQL语 ...

  5. MySQL性能优化:索引

    MySQL性能优化:索引 索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序.数据库使用索引以找到特定值,然后顺指针找到包含该值的行.这样可以使对应于表的SQL语句执 ...

  6. mysql性能优化-慢查询分析、优化索引和配置 (慢查询日志,explain,profile)

    mysql性能优化-慢查询分析.优化索引和配置 (慢查询日志,explain,profile) 一.优化概述 二.查询与索引优化分析 1性能瓶颈定位 Show命令 慢查询日志 explain分析查询 ...

  7. MySQL性能优化 - 别再只会说加索引了

    MySQL性能优化 MySQL性能优化我们可以从以下四个维度考虑:硬件升级.系统配置.表结构设计.SQL语句和索引. 从成本上来说:硬件升级>系统配置>表结构设计>SQL语句及索引, ...

  8. mysql 性能优化常见命令

    mysql 性能优化常见命令: 一: 当发现mysql程序运行缓慢时,在排除sql主机问题之后,可以尝试在schema,table,和sql上进一步进行考查: 1:mysql> show ful ...

  9. 涨姿势:Mysql 性能优化完全手册

    涨姿势:Mysql 性能优化完全手册 深入理解MySQL服务器架构 客户端层 MySQL逻辑架构整体分为三层,最上层为客户端层,诸如:连接处理.授权认证.安全等功能均在这一层处理. 中间层 MySQL ...

随机推荐

  1. Linux显示服务器完整的状态信息

    Linux显示服务器完整的状态信息 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ apachectl [fullstatus] Usage: /usr/sbi ...

  2. FAT32文件系统的存储组织结构(一)

    对磁盘的物理结构,逻辑结构和存储结构有了比较深入的了解后,我们来仔细探讨FAT32文件系统的存储组织结构.说到文件系统的组织结构,我们应该马上意识到,这指的是文件系统在同一个分区内的组织结构,在这个话 ...

  3. class-感知机Perception

    1 感知机模型1.1 模型定义2 感知机学习策略2.1 数据的线性可分性2.2 学习策略3 学习算法3.1 算法原始形式3.2 收敛性3 学习算法的对偶形式 1 感知机模型 感知机perceptron ...

  4. div里面的图片垂直居中

    外面一个div, 里面是一张大小不固定的图片, 或者span,div都行, 要实现里面元素水平垂直居中对齐 其实有很多实现的方法, 比如用js去计算每一个子元素的高度, 通过js去动态设置magin值 ...

  5. 两个map一个reduce(两个输入文件)

    两个map,一个map读取一个hdfs文件,map完之后进入一个reduce进行逻辑处理. package com.zhongxin.mr; import org.apache.commons.lan ...

  6. C#图解教程 第二十三章 预处理指令

    预处理指令 什么是预处理指令基本规则#define和#undef指令条件编译条件编译结构诊断指令行号指令区域指令#pragma warning 指令 预处理指令 什么是预处理指令 源代码指定了程序的定 ...

  7. C#构造函数与析构函数--C#基础

    1.构造函数 1)构造函数没有返回值,也不能写void,必须是public 修饰符 2)构造函数和类名相同 3)构造函数也是可以重载的 public Clerk(string name,Gender ...

  8. Redis总结(七)Redis运维常用命令

    redis 服务器端命令 redis 127.0.0.1:6380> time  ,显示服务器时间 , 时间戳(秒), 微秒数 1) "1375270361" 2) &quo ...

  9. 【BZOJ2037】Sue的小球(动态规划)

    [BZOJ2037]Sue的小球(动态规划) 题面 BZOJ 题解 莫名想到这道题目 很明显是一样的 设\(f[i][j][0/1]\)表示已经接到了\(i-j\)这一段的小球 当前在\(i\)或者在 ...

  10. 【BZOJ2684】【CEOI2004】锯木厂选址(斜率优化,动态规划)

    [BZOJ2684][CEOI2004]锯木厂选址(斜率优化,动态规划) 题面 万恶的BZOJ因为权限题的原因而做不了... 我要良心的提供题面 Description 从山顶上到山底下沿着一条直线种 ...