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

秋招Day14 - MySQL - 存储引擎

MySQL有哪些常见的存储引擎?

InnoDB,MyISAM、MEMORY

  • MySQL 5.5之前默认存储引擎是MyISAM,5.5之后默认是InnoDB
  • InnoDB的哈希索引是自适应的,用户无法自行创建或修改
  • InnoDB从5.6开始支持全文索引
  • InnoDB支持的最小表空间略低于10MB,最大表空间取决于页面大小。

存储引擎应该怎么选择?

  • 大多数情况下使用InnoDB就行了,InnoDB支持事务、支持行级锁外键等。
  • MyISAM适合读多写少的场景,因为只支持表锁不支持行级锁,不支持事务。
  • MEMORY适合临时表,并且数据量不大的情况下,记录都存储在内存,所以速度很快

MyISAM和InnoDB主要有什么区别?

区别主要在是否支持行级锁和是否支持事务上。InnoDB支持行级锁和事务,适合大多数业务系统,MyISMA支持的是表级锁,不支持行级锁,查询快但是写入性能较差,适合读多写少的场景。

另外,从存储结构角度,MyISAM使用三种格式的文件存储,.frm存储表的结构,.MYD存储表的数据,MYI存储表的索引;InnoDB使用两种格式的文件存储,.frm存储表结构,.ibd存储数据和索引。

索引类型上讲,MyISAM为非聚簇索引,索引和数据分开存储,索引保存的是数据文件的指针 /偏移量,InnoDB为聚簇索引,索引和数据不分开

外键和主键的角度来讲,MyISAM不支持外键,可以没有主键;InnoDB支持外键,必须有主键。

InnoDB的内存结构了解吗?

InnoDB的内存结构主要分为两块,buffer poollog pool,buffer pool主要用来缓存数据页和索引页,log pool主要用来缓存redo log,提升写入性能。

数据页的结构了解吗?

InnoDB的数据页由7部分构成,其中文件头、页头和文件尾的大小是固定的,分别为38、56和8字节,这三部分用来标记页的一些固有信息。行记录、空闲空间和页目录的大小是动态的,存储页面的实际数据内容。

名称中文名大小(单位:B)描述
File Header文件头部38

页的一些通用信息,包括

上一页和下一页的编号

形成双向链表

Page Header页面头部56数据页专有的一些信息
Infimum + Supermum最小记录和最大记录26两个虚拟的哨兵行记录
User Records用户真实记录不确定实际存储的行记录内容
Free Space空闲空间不确定页中尚未使用的空间
Page Directory页面目录不确定存储每组最大记录的页内偏移量
File Trailer文件尾部8校验页是否完整

InnoDB的buffer pool了解吗?

存储的是数据页索引页,读的时候不必先访问磁盘,先尝试在缓存中查询,缓存中没有命中再从磁盘中读,并加载到buffer pool,可能会触发页淘汰,将不常用的页淘汰出去。

写操作不会直接写入磁盘,而是先写入buffer pool,标记为脏页,后台线程会定期刷盘

Buffer Pool的默认大小是多少?

我本机InnoDB的Buffer Pool的默认大小是128MB

InnoDB对LRU算法的优化了解吗?

最近访问的数据页不会放在LRU链表的头部,而是放在一个叫midpoint的位置。默认情况下这个位置位于LRU链表的5/8处,新读入的数据会首先放在老年代的头部多次频繁访问之后才会被移动到Young区域防止被淘汰

相关文章:

  • [计算机网络] 网络的诞生:协议的认知建立
  • Vue.js第一节
  • Spring Boot 常用注解整理
  • 【开源解析】基于Python+Qt打造智能应用时长统计工具 - 你的数字生活分析师
  • 7.索引库操作
  • c++_cout的理解和使用
  • OpenStack入门体验
  • Neo4j常见语句-merge
  • 【AI Study】第四天,Pandas(5)- 数据可视化
  • 什么是MapReduce
  • 机器学习常用评估指标
  • 深入理解XGBoost(何龙 著)学习笔记(四)
  • TensorFlow基础之理解张量
  • Linux系统移植10:uboot移植
  • Ubuntu22.04安装opengauss并配置远程访问、JDBC连接
  • 创世新布控球 国标
  • FramePack 全面测评:革新视频生成体验
  • 蚂蚁百宝箱+MCP打造p 人解放神器agent,解放大脑
  • class对象【C#】2025复习
  • linux 下 jenkins 构建 uniapp node-sass 报错
  • 做网站怎么查看来访ip/微博推广
  • 对门户网站建设情况的报告/seo关键词如何设置
  • 如何用wordpress建网站/域名注册商有哪些
  • 网站建设设计工具/seo国外推广软件
  • 网站新闻公告表怎么做/百度移动端关键词优化
  • 安徽做网站/站长工具seo查询软件