一些Mysql面试题

InnoDB是如何存储数据的?

InnoDB 的数据是按「数据页」为单位来读写的,默认数据页大小为 16 KB。每个数据页之间通过双向链表的形式组织起来,物理上不连续,但是逻辑上连续。

数据页内包含用户记录,每个记录之间用单向链表的方式组织起来,为了加快在数据页内高效查询记录,设计了一个页目录,页目录存储各个槽(分组),且主键值是有序的,于是可以通过二分查找法的方式进行检索从而提高效率。

为了高效查询记录所在的数据页,InnoDB 采用 b+ 树作为索引,每个节点都是一个数据页。

如果叶子节点存储的是实际数据的就是聚簇索引,一个表只能有一个聚簇索引;如果叶子节点存储的不是实际数据,而是主键值则就是二级索引,一个表中可以有多个二级索引。

在使用二级索引进行查找数据时,如果查询的数据能在二级索引找到,那么就是「索引覆盖」操作,如果查询的数据不在二级索引里,就需要先在二级索引找到主键值,需要去聚簇索引中获得数据行,这个过程就叫作「回表」。

间隙锁的工作原理

间隙锁,只存在于可重复读隔离级别,目的是为了解决可重复读隔离级别下幻读的现象。

假设,表中有一个范围 id 为(3,5)间隙锁,那么其他事务就无法插入 id = 4 这条记录了,这样就有效的防止幻读现象的发生。

心灵拷问:MySQL 到底是怎么加行级锁、间隙锁、临键锁的?_间隙锁怎么加-CSDN博客

Mysql的undolog redolog是干什么的

undolog和redolog都是在InnoDB引擎下才有的日志

undolog保证事务的原子性,有一个undolog版本链保存历史版本,可以进行回滚,这也在MVCC里面有所应用,MVCC就是基于readview决定快照读的时候去返回哪一个版本的数据

redolog主要有两份,在磁盘中有一份,在内存中也有一份,

相关推荐

  1. 一些Mysql面试

    2024-06-07 05:04:03       32 阅读
  2. MySQL一些高频面试汇总(持续补充)

    2024-06-07 05:04:03       26 阅读
  3. 一些RabbitMQ面试

    2024-06-07 05:04:03       32 阅读
  4. 一些JVM面试

    2024-06-07 05:04:03       35 阅读
  5. MySQL面试总结

    2024-06-07 05:04:03       64 阅读
  6. MySQL面试

    2024-06-07 05:04:03       58 阅读
  7. Mysql面试

    2024-06-07 05:04:03       47 阅读
  8. MySQL面试(下)

    2024-06-07 05:04:03       55 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-07 05:04:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-07 05:04:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-07 05:04:03       82 阅读
  4. Python语言-面向对象

    2024-06-07 05:04:03       91 阅读

热门阅读

  1. 原生js 实现table 打印

    2024-06-07 05:04:03       27 阅读
  2. 交易中的预测和跟随

    2024-06-07 05:04:03       30 阅读
  3. UITableViewHeader自适应的几种方法

    2024-06-07 05:04:03       31 阅读
  4. 网络编程介绍(IP)(一)

    2024-06-07 05:04:03       28 阅读
  5. 大型ERP设计-业务与功能指引:物料状态

    2024-06-07 05:04:03       25 阅读
  6. C#中的值类型与引用类型

    2024-06-07 05:04:03       29 阅读
  7. 黑龙江等保测评:强化网络安全的北方防线

    2024-06-07 05:04:03       27 阅读
  8. C# SolidWorks 二次开发-显示配置

    2024-06-07 05:04:03       32 阅读
  9. 【CMake系列】00-CMake学习目录

    2024-06-07 05:04:03       27 阅读
  10. Lf工作流自定义html节点

    2024-06-07 05:04:03       24 阅读
  11. 023、键管理_数据库

    2024-06-07 05:04:03       27 阅读