mysql oracle mvcc
MySQL和Oracle是两个非常常用的关系型数据库管理系统,它们的MVCC(多版本并发控制)技术是数据库领域中的一个重要话题。
MVCC是一种数据库管理系统使用的并发控制方法,它可以让多个事务同时对同一数据进行读写操作,而不会出现互相干扰、冲突、争用等问题。这种技术基于数据库的ACID(原子性、一致性、隔离性、持久性)特性,并且可以在一些大型的互联网企业中起到非常重要的作用。
MySQL使用MVCC来实现事务管理和并发控制,实现了对表的并发读取和写入操作。在MVCC中,每个事务执行时间线上有一个事务ID(又称为版本号),并且每个数据行都有-create_time和-delete_time两个时间戳。在查询数据时,MySQL只会返回时间戳最迟的一个版本,这和Oracle的实现方式略有不同。例如:
CREATE TABLE mvcc_test ( id INT(11) PRIMARY KEY, name VARCHAR(50), age INT(11), create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, delete_time TIMESTAMP NULL DEFAULT NULL, UNIQUE KEY idx_name_age (name, age) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- 插入数据 INSERT INTO mvcc_test (id, name, age) VALUES (1, 'Tom', 20);