如何在手机上创建网站?南岸区哪个网站建设公司服务好?
摘要:手机怎么生成网站,南岸网站建设哪家好,企业网站建设策划书方案范文,天元建设集团有限公司三层九中心事务 简介 事务是一组数据库操作的执行单元,它要么完全执行,要么完全不执行。事务是确
手机怎么生成网站,南岸网站建设哪家好,企业网站建设策划书方案范文,天元建设集团有限公司三层九中心事务
简介
事务是一组数据库操作的执行单元#xff0c;它要么完全执行#xff0c;要么完全不执行。事务是确保数据库中的数据一致性和完整性的重要机制之一。
事务具有以下四个特性#xff08;称为ACID特性#xff09;#xff1a; 原子性#xff08;Atomicity#xf…事务
简介
事务是一组数据库操作的执行单元它要么完全执行要么完全不执行。事务是确保数据库中的数据一致性和完整性的重要机制之一。
事务具有以下四个特性称为ACID特性 原子性Atomicity事务作为一个整体被执行要么全部操作成功要么全部操作失败。如果事务中的任何操作失败那么整个事务将被回滚到初始状态。 一致性Consistency事务的执行不会破坏数据库的完整性约束。在事务开始之前和结束之后数据库必须保持一致状态。 隔离性Isolation事务的执行是相互隔离的即一个事务的操作不会被其他并发事务所干扰。每个事务都应该感知不到其他并发事务的存在。 持久性Durability一旦事务提交其结果应该永久保存在数据库中即使在系统故障或重启后也不能丢失。
通过使用事务可以确保数据库操作的安全性和一致性从而提供可靠的数据处理机制。在MySQL中可以使用事务来对一系列SQL语句进行分组和控制。
语法
默认MySQL的事务是自动提交的也就是当执行一条DML语句后MySQL会立即隐式的提交事务。 因此我们使用事务时需要手动开启事务、提交事务当出现异常后回滚事务。
示例比如张三给李四转账。转账成功时张三的钱会减少李四的钱会增多转账失败双方的钱都不能发生变化。 也就是上面说的要么完全执行要么完全不执行。不能够出现张三钱减少了但是李四的钱没有增多的情况。
语法
-- 开启事务
begin-- 如果执行成功则 提交事务 commit;
-- 如果执行失败则 回滚事务 rollback;-- 结束事务
end可以在业务代码里使用try-catch 来判断有没有执行成功。
并发事务问题
脏读当一个事务读取了另一个事务尚未提交的数据然后该事务回滚导致读取的数据是无效或错误的。不可重复读一个事务在读取一个数据项之后另一个事务修改了该数据项并提交导致第一个事务再次读取时得到不同的结果。幻读一个事务在读取了一批数据后另一个事务插入了新的数据项并提交导致第一个事务再次查询时发现多了一些之前不存在的数据。丢失更新两个事务同时更新同一行数据其中一个事务的更新结果被另一个事务覆盖导致更新的结果丢失。
事务隔离
为了解决这些并发事务问题MySQL提供了多种隔离级别包括读未提交Read Uncommitted、读已提交Read Committed、可重复读Repeatable Read和串行化Serializable。不同的隔离级别可以根据具体的应用场景选择以平衡并发性能和数据一致性的需求。
其中在MySQL中 可重复读是默认隔离 查看事务隔离级别
select transaction_isolation;设置事务隔离级别
// 读未提交Read UncommittedSET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;// 读已提交Read CommittedSET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;// 可重复读Repeatable ReadSET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;//串行化SerializableSET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;这些命令可以在事务开始前执行以设置事务的隔离级别。请注意设置事务隔离级别的命令只对当前会话有效不会影响其他会话的隔离级别。另外MySQL也支持在创建表或启动服务器时通过配置文件来设置默认的隔离级别。
存储引擎
存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的而不是基于库的所以存储引擎也可以被称为表类型。
查看当前表的存储引擎 我们可以通过show create table 表名来查看表使用的存储引擎 查看所有的存储引擎
show engines;InnoDB
简介 InnoDB 是一种兼顾高可靠性和高性能的通用存储引擎在MySQL 5.5之后InnoDB 是默认的MySQL存储引擎。
