当前位置: 首页 > news >正文

深圳网站策划个人asp网站模板下载

深圳网站策划,个人asp网站模板下载,学设计的视频网站,在百度上怎么建立网站MySQL-事务 1.什么是事务 举例:想象炒菜的过程。 洗菜切菜炒菜装盘 我相信缺少任何任何一个步骤,都不完美!!!可以将炒菜的过程理解为一个事务,是一组操作的集合,而MySQL中的事务也是如此。但…

MySQL-事务

1.什么是事务

举例:想象炒菜的过程。

  1. 洗菜
  2. 切菜
  3. 炒菜
  4. 装盘

我相信缺少任何任何一个步骤,都不完美!!!可以将炒菜的过程理解为一个事务,是一组操作的集合,而MySQL中的事务也是如此。但在MySQL中定义了事务的一些特性。只有符合这些特征才能称之为MySQL事务,它们保证了数据库在并发环境下的正确性和可靠性。

2.事务的特性

1.1原子性

在MySQL中事务像原子一样不可分割的,要么都执成功,要么都执行失败。事务中的SQL语句执行错误,已经执行的SQL语句必须撤销,回滚到事务执行之前的状态。

1.2一致性

指的是事务开始和结束前后,数据库的完整性没有被破坏。(例如转账前后双方的金额和是不会发生变化的,保持一致)

1.3持久性

事务一旦提交,其执行的结果将持久化到数据库,即使系统宕机也能恢复。

1.4.隔离性

表示多个事务可以同时执行,互相隔离。

3.事务的分类

保存点:保存点(Savepoint)是事务过程中的一个中间状态,它可以在事务执行过程中被创建和命名。保存点允许事务回滚到某一状态。

3.1扁平事务

使用最频繁的事务,存在一个隐式的保存点,有且仅有这一个隐式保存点,在开始事务时隐式创建的保存点。当然,我们也可以在事务中自定义保存点。

-- 创建一个保存点
SAVEPOINT save_point_name;
-- 删除某个一保存点
release savepoint point_name;
-- 回滚到某一个保存点
ROLLBACK TO save_point_name;

例如:对商品表进行第一次修改,设置保存点,进行第二次修改,回滚到设置的保存点,然后提交。

-- 商品表如下
+-------+------------------+------+-----+---------+----------------+
| Field | Type             | Null | Key | Default | Extra          |
+-------+------------------+------+-----+---------+----------------+
| id    | int(11)          | NO   | PRI | NULL    | auto_increment |
| name  | varchar(32)      | NO   |     | NULL    |                |
| count | int(10) unsigned | YES  |     | NULL    |                |
+-------+------------------+------+-----+---------+----------------+begin;
update product set count = 2500 where id = 1;
savepoint p1;
-- 该条数据被回滚,修改不生效
update product set count = 2000  where id = 1;
rollback to p1;
commit;

扁平事务保存点的易失性:带有保存点的扁平事务发生系统崩溃故障时,保存点会消失,一旦保存消失,只能恢复到事务最开始的状态。

注意:rollback不指定回滚的保存点,将默认回滚到隐式保存点。

3.2链事务

链事务的本质是开启多个事务,它们是独立提交的且处于同一层级,提交一个事务时,释放不需要的数据对象。在提交事务和开始下一个事务操作会合并成一个原子操作,下一个事务可以看见上一个事务的执行结果。

commit和commit work的区别:

complection_type:设 set @@completion_type=1;

  1. complection_type=0,commit和commit work是一样的效果,提交事务。
  2. complection_type=1,执行commit work/commit后会自动开启一个相同隔离级别的事务。
  3. complection_type=2,commit work/commit等同于commit and release,事务提交后断开与服务器的连接并重新开启一个会话。

3.3嵌套事务

嵌套事务本质上也是多个事务嵌套执行,由最外层的事务控制内层事务。内层事务也可以嵌套其他事务。可以看做它们是树形的具有父子关系。子事务可以提交也可以回滚,回滚不会影响父事务,只会影响当前事务,但是提交操作不会立即生效,需要最后和父事务同时提交。

4.事务的实现

1.redo

主要功能:实现事务的持久性。

记录物理级别上的页修改,当事务提交时,必须先将事务的所有日志写入到redo日志文件进行持久化。

数据库存储数据的位置位于磁盘,想要知道磁盘的内容我们需要将其加载到内存,在内存中读取和操作数据。数据库对数据进行更改时,需要将数据页加载到buffer pool(缓存池),在buffer pool中更改数据,当buffer pool中的数据还没有同步到磁盘,就会暂时和磁盘页的内容不一致,这些未同步的数据页,通常称之为脏页(dirty page)。如果出现数据库崩溃或者是宕机,这些脏页的数据丢失,从而失去了持久性。因此数据库需要一种机制来记录对数据的修改。即使数据发生故障也能进行恢复。

redo实现日志持久化的原理:事务将这些修改操作写入redo log buffer,准备提交事务时。系统会将redo log buffer中的修改操作写入redo log file。

2.undo

undo日志通过记录数据的历史版本和撤销操作信息,方便数据进行回滚。

undo是逻辑日志,当发生回滚时,所有的修改都被逻辑取消了。InnoDB存储引擎回滚时,它实际上做的是与之前相反的工作,例如插入操作,Innodb存储引擎会完成一个delete;删除操作,InnoDB存储引擎会执行一个insert操作;update操作,Innodb存储引擎会执行一个相反的update操作。

5.事务管理器

InnoDB的事务管理器是InnoDB数据库引擎的核心组件之一,它负责协调和管理数据库事务的处理。

在MySQL中,事务中对数据的锁定都是由事务管理器来管理的。当一个事务获取了对某一行的锁时,该锁将一直保持有效,直到事务结束(提交或回滚)才会被释放。

在事务执行期间,如果其他事务尝试获取同一行的锁,它将被阻塞,直到当前事务释放对该行的锁为止。这样可以确保在一个事务执行期间,其他事务无法修改该行,从而保持了数据的一致性。

在事务提交或回滚时,事务管理器将释放所有该事务所获取的锁。这样,其他事务就可以获取这些锁并对数据进行修改。如果事务被回滚,那么它对数据的修改将被撤销,同时对数据的锁定也将被释放。

http://www.yayakq.cn/news/209729/

相关文章:

  • 德泰诺网站建设佛山技术支持 骏域网站建设
  • 接网站建设单子注意事项浅谈全球五金网电子商务网站建设
  • iis7如何设置ip做网站wordpress 指定编辑人
  • 怀化网站网站建设品牌营销的定义
  • 当阳市住房和城乡建设局网站如何在各大网站发布信息
  • 网站访问加速器郑州的网站建设公司哪家好
  • idea制作网站体育新闻最新消息文章
  • 电脑网站制作教程推广策略分析
  • 网站的建设技术有哪些内容做网站广告送报纸广告
  • 网站建设cz35杭州网站推广优化公司
  • 电子商务网站定制网站的收费系统怎么做
  • 成品网站1688特色有没有免费制作网站的
  • 网站建设和购买区别拓者设计吧手机版
  • 一键生成表白网站西柏坡门户网站建设规划书
  • 企业网站咋做做网站设计需要学会哪些
  • 三维免费网站福州网站建设招商
  • 重庆做网站建设公司哪家好网站规划与建设论文
  • 网站开发源代码知识产权归属手机免费建网站
  • 网站在线制作廉洁广州在线网站建设
  • 什么网站立刻买东西湖南网站开发公司
  • 合肥seo网站优化培训wordpress博客空间
  • 商业网站排名EDI许可证需要的网站怎么做
  • 新闻客户端网站开发上海网站seo公司
  • 内江网站建设公司营销方案设计
  • 红河做网站的公司网站建设的功能有哪些内容
  • 宁波定制网站建设解决方案北京网站设计必看刻
  • 简易做海报网站装修平台网站排名前十名有哪些
  • 辽宁平台网站建设价位张家口互联网软件园
  • 做直播网站需要学什么洛阳市建设厅网站
  • 生鲜市场型网站开发网站开发过程前端后端