当前位置: 首页 > news >正文

MySQL索引失效问题

索引结构

不同引擎有不同的索引结构。

索引结构描述
B+Tree索引最常见的索引类型,大部分引擎都支持B+Tree索引
Hash索引底层数据结构是用哈希表实现的,只有精确匹配索引列的查询才有效,不支持范围查询
R+Tree(空间索引)空间索引是MyISAM引擎的一个特殊索引类型,主要用于地理空间数据类型,通常使用较少
Full-text(全文索引)是一种通过建立倒排索引,快速匹配文档的方式。类似于Lucene,Solr,ES

  • 二叉树

二叉树缺点:顺序插入时,会形成一个链表,查询性能大大降低。大数据量情况下,层级较深,检索速度慢。

红黑树:大数据量情况下,层级较深,检索速度慢。

解决层级深出现了B-Tree

  • B-Tree(多路平衡查找树)

以一颗最大度数(max-degree)为5(5阶)的b-tree为例(每个节点最多存储4个key,5个指针):

    B-Tree结构形成演示网站

    B-Tree Visualization

    • B+Tree结构 

     与B树不同,所有的节点数据,在底层的节点数据中都能找到,上面的节点只是起到索引的作用

    底层节点的数据会用指针形成一个链表

    所有的数据都挂载子节点上面

    • MySQL对B+树结构的优化

    增加了一个相邻的指针,提高区间访问速度

     B+Tree结构形成演示网站

    B+ Tree Visualization

    •  为什么InnoDB存储引擎选择使用B+Tree索引结构?
    1. 相对于二叉树,层级更少,搜索效率高;
    2. 对于B-Tree,无论是叶子节点还是非叶子节点,都会保存数据,这样导致一页中存储的键值减少,指针跟着减少,要同样保存大量数据,只能增加树的高度,导致性能降低。

    什么情况下会失效?

    为什么会失效?

    http://www.lqws.cn/news/596269.html

    相关文章:

  • vue-35(使用 Jest 和 Vue Test Utils 设置测试环境)
  • 折扣点餐对接api应该如何选择?
  • React Native 0.79.4 中 [RCTView setColor:] 崩溃问题完整解决方案
  • 在线租房平台源码+springboot+vue3(前后端分离)
  • 模型部署与推理--利用python版本onnxruntime模型部署与推理
  • C++面试题精讲系列之数组排序
  • raid的介绍和raid对比 和 lvm 的介绍和使用 扩容
  • Qt 实现Opencv功能模块切换界面功能
  • 线性规划模型
  • 【V5.0 - 视觉篇】AI的“火眼金睛”:用OpenCV量化“第一眼缘”,并用SHAP验证它的“审美”
  • TensorFlow内核剖析:分布式TensorFlow架构解析与实战指南
  • 通往物理世界自主智能的二元实在论与罗塞塔协议
  • 软件测试-持续集成
  • DVWA靶场通关笔记-文件包含(Medium级别 9种渗透方法)
  • Nebula Graph Meta 服务无法启动
  • SQL SELECT 语句
  • chromedriver
  • jQuery EasyUI 安装使用教程
  • 飞算智造JavaAI:智能编程革命——AI重构Java开发新范式
  • Qt_Creator入门基础知识
  • Python Flask 容器化应用链路可观测
  • WPF学习笔记(19)控件模板ControlTemplate与内容呈现ContentPresenter
  • 原神八分屏角色展示页面(纯前端html,学习交流)
  • RabbitMQ简单消息监听
  • 基于开源AI智能名片链动2+1模式S2B2C商城小程序的抖音渠道力拓展与多渠道利润增长研究
  • [特殊字符] 分享裂变新姿势:用 UniApp + Vue3 玩转小程序页面分享跳转!
  • 飞算 JavaAI:我的编程强力助推引擎
  • vue-34(单元测试 Vue 组件的介绍)
  • Langgraph 学习教程
  • AR衍射光波导设计遇瓶颈,OAS 光学软件来破局