事务处理

事务处理

假如想象 提交于 2019-11-27 15:29:17
acid 原子性是基础,隔离性是手段,一致性是约束条件,而持久性是我们的目的 原子性:记录之前的版本,允许回滚 一致性:事务开始和结束之间的中间状态不会被其他事务看到 隔离性:适当的破坏一致性来提升性能与并行度 例如:最终一致~=读未提交。 持久性:每一次的事务提交后就会保证不会丢失(日志) 来源: https://www.cnblogs.com/autointerface/p/11937670.html

事务处理

…衆ロ難τιáo~ 提交于 2019-11-27 08:28:42
多条SQL语句当成一个整体来进行执行,如果其中由一条SQL语句没有执行成功, 那么所有的SQL语句都要执行失败,将状态回滚到最初状态。 MYSQL中只有INNODB和BDB类型的数据表才能支持事务处理!其他的类型是不支持的! PDO::beginTransaction 启动一个事务 PDO::commit 提交一个事务 PDO::rollBack — 回滚一个事务 <?php$dsn = 'mysql:host = localhost;dbname=user;charset=utf8';try{ $pdo = new PDO($dsn,'root','123456'); $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);}catch(PDOException $e){ die('数据库连接失败'.$e->getMessage());}try{ $pdo->beginTransaction(); $sql = 'update user set money=money-500 where id=1'; $ret = $pdo->exec($sql); if($ret >0){ echo "建驴转款成功 <br />"; }else{ throw new PDOException('建驴转款失败<br />'); }

微软消息队列

强颜欢笑 提交于 2019-11-26 21:05:08
转至网络: 事务性消息传递发送和接收应用程序表示要在一个事务范围内发送或检索消息,这称为事务性消息传递。在事务范围之外发送或检索消息称为非事务性消息传递。仅当采用一种使所有任务(包括非消息队列操作)全部成功或全部失败的方式执行任务时,才使用事务性消息。 事务的特点体现在其 ACID(原子性、持续性、隔离性、持久性)属性: 原子性。原子性指事务的全部行为或无行为。当事务包含一系列操作时,所有操作将被作为一个单独的操作对待,要么成功完成,要么根本不执行。 持续性。事务将系统从一个有效状态转换到另外一个有效状态。 隔离性。同时执行的多个事务在执行过程中互不影响。在每个事务看来,其他的事务在其之前已执行或在其之后执行。 持久性。事务执行完毕,即使系统或网络发生故障,它们也一直起作用。 当使用事务性消息传递时,发送或接收应用程序将有机会提交事务(所有操作均成功)或中止事务(其中一个操作失败)从而使所有更改回滚。当中止事务时,所有操作将回滚到事务被调用的状态。 在事务内发送消息时,所有消息均按发送顺序一起发送或根本不发送。如果消息可传送,则消息队列将保证所有在事务内发送的消息都将一次性到达,并且按消息的发送顺序到达。当在事务内检索消息时,所有消息将从队列中删除或被放回到队列中的原始位置。请注意,事务性消息不能被发送到多播地址,而且在事务上下文中查看消息是不合理的。 在消息队列中

SQL Server查询优化和事务处理

隐身守侯 提交于 2019-11-26 04:34:03
对于了解掌握SQL的增、删、改、查的语句操作是最基本的,实际生产环境中,我们还会用到一些比较高级的数据处理和查询,包括索引、视图、存储过程和触发器。本篇博文主要如何更好的实现对数据库的操作、诊断及优化。 博文大纲: 一、索引; 二、视图; 三、存储过程; 四、触发器; 五、事务; 一、索引 索引提供指针以指向存储在表中指定列的数据值,然后根据指定的次序排列这些指针,再跟随指针到达包含该值的列。 1.什么是索引 数据库中的索引与书籍中的目录相似。在一本书中,无需阅读整本书,利用目录就可以快速的查找到所需的信息。在数据库中,索引使数据库程序无须对整个表进行扫描,就可以在其中找到所需的数据。书中的目录就是一个词语列表,其中注明了包含各个词的页码。而数据库中的索引是某个表中一列或若干列值的集合,以及物理表示这些值得数据业的逻辑指针清单。 索引是SQL Server编排数据的内部方法,它为SQL Server提供一种方法来编排查询数据的路由。 索引页是数据库中存储索引的数据页。索引页存放检索数据行的关键字页以及该数据行的地址指针。通过使用索引,可以大大提高数据库的检索速度,改善数据库性能。 2.索引分类 在SQL Server中,常用的索引有: (1)唯一索引 唯一索引不允许两行具有相同的索引值。 如果现有数据中存在重复的键值,则一般情况下大多数数据库不允许创建唯一索引

Linq to Sql : 三种事务处理方式

我们两清 提交于 2019-11-25 19:01:18
Linq to SQL支持三种事务处理模型:显式本地事务、显式可分发事务、隐式事务。(from MSDN: 事务 (LINQ to SQL) )。MSDN中描述得相对比较粗狂,下面就结合实例来对此进行阐述。 0. 测试环境 OS Windows Server 2008 Enterprise + sp1 IDE Visual Studio 2008, .net framework 3.5 + SP1 DB SQL Server 2000 + sp4 SQL Server 2008 Enterprise Edition 1. 隐式事务 当调用SubmitChanges 时,L2S会检查当前环境是否开启了事务(下面两节中创建的事务),如果没有开始事务,则 L2S启动本地事务(IDbTransaction),并使用此事务执行所生成的 SQL 命令。 使用Reflector查看DataContext.SubmitChanges的源代码(见本文最后的附录),可以看到,如果开启了一个事务,并将其传给DataContext.Transaction,则在执行SubmitChanges时就不会再重新开启一个新的事务了。 例如,下面的代码会创建应隐式事务: 1: public static void TestTranIn2000() 2: { 3: using (SQL2000