关于—并发问题、事务隔离级别、InnoDB的实现——这三个概念是数据库理论与实践完美结合的典范。它们之间是**“问题 -> 解决方案 -> 具体实现”**的递进关系。
我们来把这条逻辑链彻底理顺。
关于—并发问题、事务隔离级别、InnoDB的实现——这三个概念是数据库理论与实践完美结合的典范。它们之间是**“问题 -> 解决方案 -> 具体实现”**的递进关系。
我们来把这条逻辑链彻底理顺。
结论先行:
历史数据不是类似map那样独立存储的,而是以**“版本链”的形式,串联在一种叫做undo log的特殊日志文件中。这个存储方式确实会占用额外且可能相当大**的磁盘空间。
redo log 和 binlog 是 MySQL 中两个非常重要但功能完全不同的日志系统。它们经常被放在一起比较,因为它们都记录了数据库的变更,但它们的设计目的、记录内容、所在层次和使用场景都有着本质的区别。
理解数据库范式和函数依赖是数据库设计的基石。这些概念很抽象,但我们可以通过一个从混乱到有序的实际例子,一步步把它们弄清楚。
我们就用一个学校的“学生选课信息”表作为例子,看看它是如何从一个糟糕的设计,一步步通过范式变得“健康”的。