IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> MYSQL 索引详解 -> 正文阅读

[数据结构与算法]MYSQL 索引详解

索引类型

  1. 索引按照存储结构划分为4类: B Tree(B-tree)、Hash、R-Tree、 Fulltext(MyISAM)
  2. 也可分为聚集索引和非聚集索引

B+tree索引

 1. B Trree(B-Tree): 有序数组+平衡多叉树
 2. B+Tree:有序数组链表+平衡多叉树
 B+Tree更适合排序、范围等操作。B+Tree所有的索引数组都在叶子节点上,并且增加了顺序访问指针,每个叶子节点都有指向相邻叶子节点的指针,提高了区间效率:
 e.g: 范围查找,只需顺着节点和指针顺序遍历即可.而B树遍历复杂.查询复杂

平衡二叉树

平衡二叉树查找的时间复杂度是O(log2N),查找效率和深度有关.普通的二叉树因为排序问题会退化成链表,实际复杂度是O(N).所以平衡二叉树是更好的选择
 但是索引是存于索引文件中,存在磁盘上.所以比较大无法一次加到内存中,因此每次只能从磁盘中读取一个磁盘页的数据到内存.读磁盘速度很慢.所以需要找一个尽可能减少执行磁盘ID操作

B-Tree

   平衡二叉树没有充分利用磁盘预读的功能(局部性原理和磁盘预读)
   内存读写快,磁盘读写慢.慢很多
        局部性原理:数据读取集中与使用一个数据,大概率会使用其附近的数据,而且磁盘的顺序读取效率很高,对于局部性程序来说,预读可以减少IO
   磁盘预读:由于存储的特性,磁盘的存取比内存慢很多,为了提高效率,尽量减少IO,为了达到这个目的,所以磁盘读取不是按需读取,而是按页读取,一次读取一页的数据,每次加载更多的数据
   红黑树:深度大,逻辑上很近的节点(父子)物理上可能很远,无法利用局部性,红黑树的IO渐进式复杂度是O(H). 平衡二叉树每次磁盘预读中很多数据都是用不上,然后深度大,进行很多磁盘IO
   B树: 主要发生在内存中,二叉树发生在磁盘读取中

B+Tree

   关键字存在叶子节点,非叶子节点存储索引,而叶子节点中有一个指针指向下一个也在节点.主要用来提高区间访问的性能
   叶子节点按存储实际记录行,记录行想的比较紧密的存储,适合大数据量磁盘存储,非叶子节点存储记录的PK,用于查询加速,适合内存存储
   非叶子节点,不存实际记录,只存储记录的key,相同内存,B+树能够存储更多的索引

索引失效

1.  查询列中有函数计算
2.  like
3.  有or时,除非所有条件都加上索引
4.  != or <>
5.  is null 或者is not null
6.  字符串不加引号
7.  最左匹配原则
  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-05-11 16:39:00  更:2022-05-11 16:41:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 3:44:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码