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


    前言

    首先来回顾建表的过程,建表需要的内容有三个:表的结构、数据和索引。存储引擎直接影响这些内容的存储方式。

    文章目录

    • 前言
    • 常见存储引擎
    • 为什么InnoDB存储引擎下建表时,没有加主键也会自动生成一个主键,MyISAM不行?
    • 各种存储引擎的区别

    常见存储引擎

    1. MyISAM :不支持事务、也不支持外键,索引采用非聚集索引,其优势是访问的速度快,对事务完整性没有要求,以 SELECT、INSERT 为主的应用基本上都可以使用这个存储引擎来创建表。
      MyISAM的表在磁盘上存储成 3 个文件,其文件名都和表名相同,扩展名分别是:
      .frm(存储表定义)
      .MYD(MYData,存储数据)
      .MYI (MYIndex,存储索引)

    2. InnoDB 存储引擎 提供了具有提交、回滚和崩溃恢复能力的事务安全,支持自动增长列,外键等功能,索引采用聚集索引,索引和数据存储在同一个文件,所以InnoDB的表在磁盘上有两个文件,其文件名
      都和表名相同,扩展名分别是:
      .frm(存储表的定义)
      .ibd(存储数据和索引)

    3. MEMORY 存储引擎使用存在内存中的内容来创建表。每个MEMORY 表实际只对应一个磁盘文件,格式是.frm(表结构定义)。MEMORY 类型的表访问非常快,因为它的数据是放在内存中的,并且默认使用 HASH 索引(不适合做范围查询),但是一旦服务关闭,表中的数据就会丢失掉。

    为什么InnoDB存储引擎下建表时,没有加主键也会自动生成一个主键,MyISAM不行?

    这个在上面的概念里其实也说到,因为文件不同。

    可以使用 show engines;命令来查看自己数据库的存储引擎:
    在这里插入图片描述

    进入 var/lib/mysql/mysql下,红框表示 MyISAM存储引擎的文件,索引和数据是分开的,蓝框表示InnoDB存储引擎的数据跟索引一起存放的。

    在这里插入图片描述

    各种存储引擎的区别

    在这里插入图片描述

    1. 锁机制:表示数据库在并发请求访问的时候,多个事务在操作时,并发操作的粒度。
    2. B-树索引和哈希索引:主要是加速SQL的查询速度。
    3. 外键:子表的字段依赖父表的主键,设置两张表的依赖关系。
    4. 事务:多个SQL语句,保证它们共同执行的原子操作,要么成功,要么失败,不能只成功一部分,失败需要回滚事务。
    5. 索引缓存和数据缓存:和MySQL Server的查询缓存相关,在没有对数据和索引做修改之前,重复查询可以不用进行磁盘I/O(数据库的性能提升,目的是为了减少磁盘I/O操作来提升数据库访问效率),读取上一次内存中查询的缓存就可以了。
  • 相关阅读:
    【数字电路基础】进制转换:二进制、十进制、八进制、十六进制、反码、补码、原码
    《垃圾回收算法手册 自动内存管理的艺术》——内存分配(笔记)
    【全网首发】2023年NOIP真题
    算法精讲!带你轻松搞懂插入排序是咋回事
    微服务篇-A JavaEE架构演进历程(学习总结)
    Spring事务
    一个 SAP 开发工程师在 SAP 德国总部出差的见闻系列 1:出差 ≠ 公费旅游
    操作系统篇之虚拟内存
    3_python高阶_线程—多线程-共享全局变量
    实战演练,使用硬raid卡制作“raid”阵列
  • 原文地址:https://blog.csdn.net/m0_56257585/article/details/126178597
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号