事务(Transaction)

1. 定义

2. 如何操作事务

2.1 SQL 语句操作事务的几个关键字

2.2 使用 SQL 语句操作事务

start transaction;
-- SQL1
-- SQL2
commit;		-- 事务正常提交
-- rollback;	-- 我们主动让事务失败

2.3 JDBC 操作事务

String sql1 = "";
String sql2 = "";

// 要使用事务,在同一个事务中,操作 sql1 和 sql2,意味着必须在一条 Connection 完成
try (Connection c = DBUtil.connection()) {
    c.setAutoCommit(false);
    
    try (PreparedStatement ps = c.prepareStatement(sql1)) {
        ps.executeUpdate();
    }

    try (PreparedStatement ps = c.prepareStatement(sql2)) {
        ps.executeUpdate();
    }

    c.commit();

3. 事务的四个特性:ACID

事务的四大特性中,一致性是最基本的,其他三个特性都是为了维护一致性而生的

3.1 Atomic(原子性)

3.1.1 理解原子性

3.2 Consistency(一致性)

3.2.1 以银行转账的例子理解一致性

3.3 Isolation(隔离性)

3.4 Durability(持久性)

4. 隔离级别

【MySQL】事务和索引-LMLPHP

4.1 读未提交

【MySQL】事务和索引-LMLPHP

4.2 读已提交

【MySQL】事务和索引-LMLPHP

4.3 可重复读

【MySQL】事务和索引-LMLPHP

【MySQL】事务和索引-LMLPHP

4.4 快照读

4.5 可串行化

索引

1. 索引的分类

以下全文只针对普通索引

2. 索引的作用

3. 创建索引

-- 使用 ALTER  TABLE 语句添加索引
ALTER  TABLE  `table_name`  ADD  PRIMARY  KEY (  `column`  ) 
-- 使用 create 语句添加索引
CREATE INDEX `index_name` on `table_name` (`column_name`)

4. 索引的基本原理

4.1 添加索引之后的查询过程

5. 索引的 hit 和 miss

6. 索引的优缺点

7. 索引的使用场景

8. 了解 explain 命令

【MySQL】事务和索引-LMLPHP

11-29 11:02