Practice in Class 1-1: 了解 MySQL 的版本演变、SQL 引擎、事务处理级别划分及体系结构
1. MySQL 版本演变
MySQL 自1995年发布以来经历了多个版本的演变。从 MySQL 3.x 开始,它在 SQL 支持和性能优化方面逐步提升,后来引入了 InnoDB 引擎,支持事务处理。MySQL 8.x 是当前的主要版本,增加了 JSON 支持、窗口函数和查询性能的优化。
2. SQL 引擎
MySQL 中使用最多的存储引擎是 InnoDB 和 MyISAM。InnoDB 支持事务处理、行级锁和多版本并发控制(MVCC),适合高并发场景。MyISAM 主要使用表级锁,不支持事务,适用于只读或读多写少的场景。
3. 事务处理级别
MySQL 支持四种事务隔离级别:
- Read Uncommitted:允许读取未提交的事务数据,可能产生脏读。
- Read Committed:只能读取已提交的数据,避免脏读但可能有不可重复读。
- Repeatable Read:保证同一事务内的查询结果一致,避免不可重复读,是 MySQL 默认的隔离级别。
- Serializable:所有事务按顺序执行,完全避免并发问题,但性能开销大。
4. 体系结构
MySQL 的体系结构包括连接层、SQL 层、存储引擎层和存储层。连接层处理客户端连接,SQL 层负责解析和优化查询,存储引擎层负责数据的实际存储和读取,常用的引擎如 InnoDB 和 MyISAM。
Practice in Class 2-1: 数据库锁机制的深入理解及其对编程的影响
1. 锁机制对编程的影响
对于开发者来说,锁机制虽然大多数情况下是自动的,但了解锁机制的工作原理有助于避免死锁和性能问题。特别是在长时间运行的事务或高并发系统中,优化锁的使用可以减少锁争用,提高系统性能。
2. 其他数据库锁机制的特征
- MySQL:InnoDB 存储引擎支持行级锁和 MVCC,通过 `SELECT FOR UPDATE` 等命令可以手动加锁。MyISAM 则使用表级锁,适用于低并发环境。