InnoDB
-
InnoDB数据存储及事务两阶段提交原理解析
本文详细介绍MySQL InnoDB的数据模型、数据持久化策略、事务提交以及故障恢复原理。
-
MySQL的InnoDB引擎原来是这样的
为了保持数据的完整性,InnoDB支持外键约束。使用外键,插入、更新和删除将被检查,以确保它们不会导致相关表之间的不一致。有些生产环境不使用外键,以业务代码维护表数据间关系。
-
什么?MySQL 8.0 会同时修改两个ib_logfilesN 文件?
MySQL8.0 一个自动提交事务,redo落文件的方式追踪 1.通过后台线程thread/innodb/log_writer_thread 写redo,通过另一个后台线程thread/innodb/log_checkpointer_thread ,在ib_logfile0的pos=512 pos=1536 ,分别记录checkpoint 。两个线程都是以512B的整数倍为单位,写文件。
-
我被嘲笑了:被查询的列,为啥要放到索引里?
本文介绍InnoDB聚集索引普通索引,回表,索引覆盖,希望这1分钟大家有收获。
-
InnoDB 行超长时怎么选择溢出字段?
InnoDB 索引页的大小默认为 16K,然而,varchar、text、blob 类型的单个字段内容长度就有可能超过 16K,这种情况下,整个索引页都存不下一个字段的内容了。接下来,我们来聊聊 InnoDB 选择溢出字段的逻辑。
-
面试突击:聊聊聚簇索引和非聚簇索引到底有什么区别?
在 MySQL 的 InnoDB 引擎中,每个索引都会对应一颗 B+ 树,而聚簇索引和非聚簇索引最大的区别在于叶子节点存储的数据不同,聚簇索引叶子节点存储的是行数据,因此通过聚簇索引可以直接找到真正的行数据。
-
Delete、Drop、Truncate有什么区别?你知道吗?
在 InnoDB 引擎中,delete 操作并不是真的把数据删除掉了,而是给数据打上删除标记,标记为删除状态,这一点我们可以通过将 MySQL 设置为非自动提交模式,来测试验证一下。
-
面试突击:MySQL 常用引擎有哪些?
MySQL 中最常见的存储引擎有:InnoDB、MyISAM 和 MEMORY,其中 InnoDB 是 MySQL 5.1 之后默认的存储引擎,它支持事务、支持外键、支持崩溃修复和自增列,它的特点是稳定(能保证业务的完整性),但数据的读写效率一般。
-
自增ID插入时,究竟发生了什么?
知其然,知其所以然,我们先系统性讲讲相关知识点,InnoDB自增键,插入,如何插入,以及插入之后发生了什么?
-
面试官问我 InnoDB 的物理存储结构!
所谓物理存储结构,指的是 MySQL 的数据是怎么存储在物理介质上的,由哪些磁盘文件组成。所谓逻辑存储结构,指的是这些数据是如何有结构地组织起来的。
-
不能再简单的意向锁
为了使多粒度级别的锁定变得实用,InnoDB 使用了意向锁,注意,意向锁是一种表级锁,它表示事务稍后对表中的行需要哪种类型的锁(共享或独占)。
-
MySQL 表数据多久刷一次盘?
在 InnoDB 中,页是数据被管理的最小的单位。当使用 InnoDB 作为存储引擎的 MySQL 运行时,表中一行一行的数据会被组织在一页一页当中,放在 Buffer Pool 中。
-
让我们一起告别 MVCC !
事务是在 MySQL 引擎层实现的,我们常见的 InnoDB 引擎是支持事务的,事务的四大特性是原子性、一致性、隔离性、持久性,我们这次主要讲的是隔离性。
-
SQL优化,怎么做?
InnoDB的行锁是针对索引加的锁,不是针对记录加的锁,并且该索引不能失效,否则会从行锁升级为表锁。所以在使用update操作时,更新的条件最好要有索引,否则导致行锁升级为表锁,并发性能降低。
-
一个不留神,索引就创建重复了
我们日常在使用 MySQL 的过程中,基本上都是使用 InnoDB 引擎,所以接下来的讨论主要是基于 InnoDB 引擎的 B+Tree 索引来讨论,其他的哈希索引全文索引等不在讨论范围种。