【MySQL】MySQL基础教程(10)
前言:
本文内容:事务ACIS原则、事务实现转账、索引介绍及索引的分类
推荐免费MySQL基础讲解视频:【狂神说Java】MySQL最新教程通俗易懂_哔哩哔哩_bilibili
事务ACID原则、脏读、不可重复读、幻读
事务
要么都成功,要么都失败;
- SQL执行 A给B转账 A1000 --> 200 B 200
- SQL执行 B收到A的钱 A800 --> B 400
将一组SQL放在一个批次中去执行
ACID原则
原子性(atomicity,或称不可分割性)
- 一个事务要么全部提交成功,要么全部失败回滚,不能只执行其中的一部分操作。
一致性(consistency)
- 事务的执行不能破坏数据库数据的完整性和一致性,一个事务在执行之前和执行之后,数据库都必须处于一致性状态。(最终完整性)
隔离性(isolation,又称独立性)
- 事务的隔离性是指在并发环境中,并发的事务时相互隔离的,一个事务的执行不能被其他事务干扰。
持久性(durability)
- 一旦事务提交,那么它对数据库中的对应数据的状态的变更就会永久保存到数据库中;即使数据库崩溃和宕机,当数据库重启后,一定能将数据库恢复到事务成功结束的状态。
事务的隔离级别
脏读
- 指一个事务读取了另外一个事务未提交的数据。
不可重复读
- 在一个事务内读取表中某一行数据,多次读取结果不同(这个不一定是错误)。
幻读
- 指在一个事务内读取到了别的事务插入的数据,导致前后读取不一致。
测试事务实现转账
执行事务步骤
1 | -- 事务 |
例子
1 | -- 事务转账案例 |
索引介绍及索引的分类
索引
索引(index)是帮助MySQL高效获取数据的数据结构。
本质:索引是数据结构
索引的分类
- 主键索引(Primary key)
- 唯一的标识,不可重复,只能有一个列作为主键。
- 唯一索引(Unique key)
- 避免重复的列出现,唯一索引可以重复,多个列都可以标识为唯一索引。
- 常规索引(key/index)
- 默认的,index/key关键字来设置。
- 全文索引(FullText)
- 在特定的数据库引擎下才有,MyISAM。
- 快速定位数据。
例子
1 | -- 索引的使用 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Hey,Joker!
评论
ValineTwikoo