暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
第三章-MySQL事务和锁-腾讯云数据库MySQL超速入门进阶课程
873
56页
19次
2019-11-04
免费下载
第三章 事务和锁
问题一:数据库系统为什么要引入事务
事务【transaction】是数据库区别于文件系统的重要特性之一。
数据库系统引入事务的主要目的:事务会把数据库从一种一致状态转换为另一种一致状态。
在数据库提交工作时,可以确保要么所有修改都已经保存了,要么所有修改都不保存。
问题二:事务的 ACID 特性分别指什么?
A 代表 Atomicity --原子性
C 代表 Consistency--一致性
I 代表 Isolation --隔离型
D 代表 Durability--持久性
【原子性】
整个事务的操作过程都应该视为原子操作,即要么都做,要么都不做。
比如:不能用户的钱未从 ATM 机上取得,但是银行卡上的钱已经被扣除了。这种情况是大
家都不能接受的 通过事务模型,可以保证操作的原子性。
原子性指整个数据库事务是不可分割的工作单位。只有使事务中所有的数据库操作都执行
功,算整个事务成功。事务中任何一 SQL 语句执行失败,已经执行成功的 SQL 语句也
必须撤销,数据库状态应该退回到执行事务前的状态。
【一致性】
【隔离性】
事务的隔离行要求每个读写事务的对象对其他事务的操作对象能相互分离,即该事务提交
对其他都不可见,隔离性一般是通过数据库的锁来实现。
【持久性】
事务一旦提交,其结果就是永久性的。即使发生宕机等故障,数据库也能将数据恢复。需要
注意的是,只能从事务本身的角度来保证结果的永久性。
例如,在事务提交后,所有的变化都是永久的即使当数据库因为崩溃而需要恢复时,也能
保证恢复后提交的数据都不会丢失。【崩溃恢复】
但如果是一些外部的原因, RAID 卡损坏,磁盘介质故障自然灾害等原因导致数据库发
生问题,那么所有提交的数据也肯定是会丢失的。
因为事务的持久性只能从事务本身的角度来保证事务系统的高可靠性High Reliability
不是高可用性【High Avaliability。对于高可用性的实现,事务本身无法保证,需要一些系
统架构来配合完成。
原子性、一致性持久性通过数据库的 redo log undo log 来完成。Redo log 一般又叫重做
日志,用来保证事务的原子性和持久性。Undo log 用来保证事务的一致性。
而隔离型由我们之后介绍的锁来实现。
MySQL InnoDB 存储引擎 Redo log undo log 我们会在初中部分给大家详细介绍。
问题三: MySQL 面有哪 SQL 语句会产生隐式提交?
1.DDL 语句:
ALTER 语句ALTER DATABASEALTER TABLEALTER VIEWALTER PROCEDURE
等等】
CREATE 语句CREATE DATABASECREATE TABLECREATE INDEXCREATE VIEW
DROP 语句【DROP DATABASEDROP INDEXDROP TABLEDROP VIEW
RENAME TABLETRUNCATE TABLE 等等
2.用来隐式地修 MySQL 架构的操作:CREATE USERDROP USERGRANTRENAME
USERREVOKESET PASSWORD
3.管理维护语句: ANALYZE TABLECHECK TABLEREPAIR TABLEOPTIMIZER TABLE
等等
of 56
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜