0
点赞
收藏
分享

微信扫一扫

【MySQL】事务和索引

骨灰级搬砖工 2022-11-29 阅读 110

文章目录

事务(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. 隔离级别

请添加图片描述

4.1 读未提交

请添加图片描述

4.2 读已提交

请添加图片描述

4.3 可重复读

请添加图片描述

请添加图片描述

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 命令

请添加图片描述

举报

相关推荐

0 条评论