美文网首页
Mysql索引简单介绍

Mysql索引简单介绍

作者: 躺在家里干活 | 来源:发表于2019-10-08 09:47 被阅读0次

索引:存储引擎快速找到记录的一种数据结构。

  • 数据量越大,索引对性能的影响越重要
  • 索引并不是越多越好

索引脑图

数据库索引基础

B-Tree索引

存储结构

索引的存储结构

B-Tree中的数据都是有序的,所以索引才能加快访问速度。
图中的key1是指所有的索引列的值

索引之所以能够加快访问数据的速度,是因为存储引擎不需要进行全表扫描来获取需要的数据,而是从根结点(上图未体现)开始进行搜索。通过比较节点页的值(使用哪一列构建的索引,这个值就是什么,主键索引中值是我们的主键)的上限和下限,找到下层子节点,最终找到数据,或者确认数据不存在。

哈希索引

哈希索引就类似于HashMap,是使用所有索引列计算出一个哈希码,哈希索引将所有的哈希码存储在索引中,同时在哈希表中保存指向每个数据行的指针。

特点

  1. 哈希索引只包含哈希值和行指针(数据的存储位置)
  2. 不是按照索引值顺序存储的,所以就无法用于排序
  3. 适合使用 =,IN (), <=>的操作
  4. 访问哈希索引的数据非常快,除非有很多哈希冲突

正确创建和使用索引

  1. 使用前缀索引,如果一个列过长,如果直接创建索引,会非常大,也会慢。所以可以选取这个列开始的部分字符,做为索引列,但是部分字符的选择要适当,要能完整的体现原列在整个数据库中所占的比例。
  2. where条件中使用独立的列,如where age+1 = 15。“独立的列”指索引列不能是表达式的一部分,也不能是函数的参数
  3. 不要为每个列创建独立的索引,如果有查询需求,要使用多列索引,并且选择合适的索引列顺序
  4. 如果二级索引(非聚簇索引)的索引列可以完全覆盖到需要查询的列,那么这个索引就是覆盖索引,这样的索引可以提高查询效率,因为不需要再根据主键去读取数据。

我的个人博客,有空来坐坐

相关文章

  • Mysql索引简单介绍

    索引:存储引擎快速找到记录的一种数据结构。数据量越大,索引对性能的影响越重要索引并不是越多越好 索引脑图 B-Tr...

  • MySQL优化系列6-索引优化

    备注:测试数据库版本为MySQL 8.0 一.索引介绍 要理解MySQL中索引是如何工作的,最简单的方法就是去看看...

  • MySQL索引

    MySQL索引 索引介绍 索引原理与分析 组合索引 索引失效分析 索引介绍 什么是索引索引:包括聚集索引、覆盖索引...

  • MySQL索引篇

    1 索引介绍 1.1 索引是什么 ​ 官方介绍索引是帮助MySQL高效获取数据...

  • mysql索引

    本文从如何建立mysql索引以及介绍mysql的索引类型,再讲mysql索引的利与弊,以及建立索引时需要注意的地方...

  • mysql索引及查询

    本文从如何建立mysql索引以及介绍mysql的索引类型,再讲mysql索引的利与弊,以及建立索引时需要注意的地方...

  • MySQL部门培训-索引篇

    章节目录 MySQL索引学习路径 MySQL索引介绍 索引分类 索引建立技巧 小试牛刀-索引使用预判 explai...

  • 【转】MySQL索引操作命令小结

    MySQL索引操作命令小结 这篇文章主要介绍了MySQL索引操作命令小结,本文讲解了创建索引、查询索引、删除索引等...

  • MySQL索引类型总结和使用技巧以及注意事项

    索引是快速搜索的关键。MySQL索引的建立对于MySQL的高效运行是很重要的。下面介绍几种常见的MySQL索引类型...

  • mysql索引使用

    索引是快速搜索的关键。MySQL索引的建立对于MySQL的高效运行是很重要的。下面介绍几种常见的MySQL索引类型...

网友评论

      本文标题:Mysql索引简单介绍

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