码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • MySQL的存储引擎和索引


    MySQL的存储引擎和索引

    mysql内部索引是由不同的引擎实现的,主要为InnoDB和MyISAM这两种引擎中的索引,这两种索引都是使用的b+树的结构来存储的

    InnoDB中的索引

    • 主键索引(聚簇索引)
      • 每个表只有一个主键索引,B+树结构,叶子结点同时保存了主键的值和所有数据记录,其他的结点只存储主键的值
    • 辅助索引(非聚簇索引)
      • 每个表可以储存多个辅助索引,B+树结构,叶子结点保存了索引字段的值以及主键的值,其
        他结点值存储索引指端的值

    在这里插入图片描述

    InnoDB数据检索的过程

    如果需要查询id=5的数据,只需要在左边的主键索引中检索就可以了

    如果需要查询name='李四’的数据,需要:

    • 先在辅助索引中检索到name='李四’的数据,获取到主键id为7
    • 再到主键索引中检索主键id为7的数据

    MyISAM引擎中的索引

    B+树结构,MyISAM使用的是非聚簇索引,

    非聚簇索引的两颗B+树。表数据存储在独立的地方,两颗B+树的叶子结点都使用一个地址指向真正的表数据,

    在这里插入图片描述

    MyISAM数据检索过程

    1,在索引中找到对应的关键字,获取关键字对应的记录的数据

    2,通过记录的数据查找到对应的数据记录

    总结

    我们用的最多的是InnoDB存储引擎,也是默认的存储引擎,在InnoDB中最好采用主键查询,这样只需要一次索引,如果使用辅助索引检索,就会涉及到回表操作,比主键查询要耗时间

    InnoDB中辅助索引为什么不能想MyISAM那样存储数据的地址?

    表中数据发生改变时,回影响其他数据地址的变化,如果辅助索引中的数据地址此时回收到影响,而主键的值一般是很少更新的,当页中的数据发生地址变更时,对辅助索引是没有任何影响的。

    区别

    事务

    • InnoDB:支持事务,
    • MyISAM:不支持事务

    锁

    • MyISAM:只支持表级锁,
    • InnoDB:支持行级锁和表锁,默认为行级锁

    外键

    • MyISAM不支持外键
    • InnoDB支持外键

    备份

    • InnoDB支持在线热备份

    崩溃恢复

    • MyISAM奔溃后恢复速度要比InnoDB慢的多
  • 相关阅读:
    杰发科技AC7801 —— __attribute__指定地址存储常量
    你好好想想,你真的需要配置中心吗?
    【数据结构与算法】之深入解析“两个盒子中球的颜色数相同的概率”的求解思路与算法示例
    git 重置到某次提交
    vue3项目中使用富文本编辑器
    注意了!申请流量卡时地址一定不要填写学校,不好下卡哦!
    (高阶) Redis 7 第21讲 IO多路复用模型 完结篇
    交换机与路由器技术-10-交换机密码恢复
    【元宇宙欧米说】听兔迷兔如何从虚拟到现实创造潮玩新时代
    MySQL——索引优化,索引机制,索引类型及其使用
  • 原文地址:https://blog.csdn.net/qq_44715376/article/details/126957095
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号