博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql 索引
阅读量:5773 次
发布时间:2019-06-18

本文共 721 字,大约阅读时间需要 2 分钟。

hot3.png

索引

索引基础

索引作用

用于快速查找。可以用书的书签进行理解。

索引类型

索引多种类型适用于不用的场景。

B-Tree索引

mysql中默认的存储引擎innodb使用的是B+Tree,但是创建索引时使用的是using BTree。 B+Tree同一层是按照顺序排序的,并且有向右的指针,适合排序、范围查找。 B+Tree分为聚簇索引和非聚簇索引。 聚簇索引是一种数据存放方式,主键和数据都存储在索引的叶子节点中。 聚簇索引只能有一个,如果有主键则使用主键索引为聚簇索引,如果没有,则选择唯一的非空的索引作为聚簇索引,如果再没有,则生成一个。 除了聚簇索引都是非聚簇索引, 非聚簇索引的叶节点存储索引列的值和主键值。所以查找记录需要先查到主键,再通过主键找到对应的记录。 当索引的列包含了要查询的列时,就形成了覆盖索引,覆盖索引是针对某一条查询而言的。覆盖索引不需要再按主键进行查询。

索引好与坏

索引的目的是增加查找速度,如果衡量一个索引是否是一个好的索引,需要看索引的列、索引列的顺序、和使用的查询语句有哪些。看一个索引好坏主要有三个方面

  • 查询语句是否使用到了索引列
  • 由于BTree索引结构,限制只能高效的使用最左前缀,不能跳过索引某一列,当索引一列使用范围匹配后
  • 索引是否可以一次将数据获取,最好是聚簇索引或覆盖索引 使用了索引列,能达到一星索引,

索引优缺点

索引优点

  • 索引大大减少了服务器需要扫描的数据量
  • 索引可以帮助服务器避免排序和临时表
  • 索引可以将随机I/O变为顺序I/O

索引缺点

  • 索引会增加额外的存储空间
  • 插入数据和修改数据时

转载于:https://my.oschina.net/u/1584569/blog/743873

你可能感兴趣的文章
5种你未必知道的JavaScript和CSS交互的方法(转发)
查看>>
线程进程间通信机制
查看>>
galera mysql 多主复制启动顺序及命令
查看>>
JS prototype 属性
查看>>
中位数性质——数列各个数到中位数的距离和最小
查看>>
WebApp之Meta标签
查看>>
添加Java文档注释
查看>>
Python3批量爬取网页图片
查看>>
iphone-common-codes-ccteam源代码 CCEncoding.m
查看>>
微信公众平台开发(96) 多个功能整合
查看>>
[转]MVC4项目中验证用户登录一个特性就搞定
查看>>
用Perl编写Apache模块续二 - SVN动态鉴权实现SVNAuth 禅道版
查看>>
Android 阴影,圆形的Button
查看>>
C++概述
查看>>
卡特兰数
查看>>
006_mac osx 应用跨屏幕
查看>>
nginx中配置文件的讲解
查看>>
MindNode使用
查看>>
SQL Server 2016 Alwayson新增功能
查看>>
HTTP库Axios
查看>>