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

外贸网站有必要吗外包seo公司

外贸网站有必要吗,外包seo公司,佛山集团网站建设,选择网站建设公司应该注意什么文章目录 一、事务简介二、事务操作1.查看事务提交方式2.设置事务提交方式3.开启事务4.提交事务5.回滚事务 三、事务四大特性ACID四、并发事务的问题五、并发事务隔离级别六、代码实例1.脏读实例2.不可重复读实例3.幻读的实例4.串行化的实现 一、事务简介 事务是一组操作的集合…

文章目录

  • 一、事务简介
  • 二、事务操作
    • 1.查看事务提交方式
    • 2.设置事务提交方式
    • 3.开启事务
    • 4.提交事务
    • 5.回滚事务
  • 三、事务四大特性ACID
  • 四、并发事务的问题
  • 五、并发事务隔离级别
  • 六、代码实例
    • 1.脏读实例
    • 2.不可重复读实例
    • 3.幻读的实例
    • 4.串行化的实现

一、事务简介

事务是一组操作的集合,事务会把所有操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败

二、事务操作

1.查看事务提交方式

SELECT @@AUTOCOMMIT;

2.设置事务提交方式

1为自动提交0为手动提交,该设置只对当前会话有效。

SET @@AUTOCOMMIT = 0;

3.开启事务

START TRANSACTION 或 BEGIN TRANSACTION;

4.提交事务

COMMIT;

5.回滚事务

ROLLBACK;

示例代码:

-- 设置为手动提交
set @@autocommit = 0;-- 查询提交方式
select @@autocommit;-- 开启事务
start transaction ;-- 更新数据
update tests set num = num - 100 where id = 2;-- 提交事务
COMMIT;-- 回滚事务
ROLLBACK;

三、事务四大特性ACID

  • 原子性(Atomicity):事务是不可分割的最小操作但愿,要么全部成功,要么全部失败。
  • 一致性(Consistency):事务完成时,必须使所有数据都保持一致状态。
  • 隔离性(Isolation):数据库系统提供的隔离机制,保证事务在不受外部并发操作影响的独立环境下运行。
  • 持久性(Durability):事务一旦提交或回滚,它对数据库中的数据的改变就是永久的。

四、并发事务的问题

问题描述
脏读一个事务读到另一个事务还没提交的数据
不可重复读一个事务先后读取同一条记录,但两次读取的数据不同
幻读一个事务按照条件查询数据时,没有对应的数据行,但是再插入数据时,又发现这行数据已经存在

五、并发事务隔离级别

隔离级别脏读不可重复读幻读
Read uncommitted
Read committed×
Repeatable Read(默认)××
Serializable×××
  • √表示在当前隔离级别下该问题会出现。
  • Serializable 性能最低;Read uncommitted 性能最高,数据安全性最差
-- 查看事务隔离级别:
SELECT @@TRANSACTION_ISOLATION;   -- 5.7.2之后
SELECT @@TX_ISOLATION;  -- 5.7.2之前
-- 设置事务隔离级别:
SET [ SESSION | GLOBAL ] TRANSACTION ISOLATION LEVEL {READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE };
-- SESSION 是会话级别,表示只针对当前会话有效,GLOBAL 表示对所有会话有效

六、代码实例

1.脏读实例

事务A

SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
set @@autocommit = 0;start transaction;update tests set num = num - 100 where id = 2;ROLLBACK;

事务B

SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;select * from tests where id = 2;

我们先把两个事务的隔离级别都设置为读未提交当A事务执行完update指令但还没有执行回滚的时候,B事务select出来的数据是已经update后的数据,这就是脏读。

2.不可重复读实例

事务A

SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
set @@autocommit = 0;start transaction;update tests set num = num - 100 where id = 2;COMMIT;

事务B

SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;select * from tests where id = 2;

我们会发现,在A事务提交之前提交之后,我们在B事务中同样的查询语句,查询的结果不一致,这就是不可重复读的问题。

3.幻读的实例

事务A

SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
set @@autocommit = 0;start transaction;insert into tests VALUE(3, 1000);COMMIT;

事务B

SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;set @@autocommit = 0;start transaction;select * from tests where id = 3;insert into tests VALUE(3, 1000);commit;

在事务A执行完insert之后但还没有提交,事务B此时查询id为3的数据是查不到的,但是insert又会报主键冲突的错误,这就是幻读,明明查不到数据,但却插入不了。

4.串行化的实现

事务A

use db_online_supermarket_system;SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE ;set @@autocommit = 0;start transaction;insert into tests VALUE(10, 1000);commit;

事务B

use db_online_supermarket_system;SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE ;set @@autocommit = 0;start transaction;insert into tests VALUE(11, 1000);commit;

如果我们先开启了A事务,然后才开启B事务的话,当我们B事务执行到insert时候会阻塞等待,直到A事务提交之后才会继续执行B事务。

http://www.tj-hxxt.cn/news/45573.html

相关文章:

  • 中国设计网站推荐360营销
  • 深圳网站建设哪家口碑好搜狗搜索排名优化
  • 福州网站建设公司哪家比较好seo网上培训多少钱
  • 如何做一个购物网站页面百度在线咨询
  • 石岩网站建设百度推广怎么登陆
  • 怎么重新网站做301万能优化大师下载
  • 做网站找个人google官网注册账号入口
  • 成都学网站建设费用seo排名优化软件有用
  • wordpress页面内容设计盐城seo推广
  • 如何做英文网站推广百度免费收录提交入口
  • 营销型手机网站建设新产品市场推广方案
  • 安徽中颐建设投资有限公司网站网站seo教材
  • 网站举报入口企业网络策划
  • 临沂网站临沂网站制作强强seo博客
  • ru后缀的网站求职seo服务
  • 地方政府网站建设中存在的问题网址之家大全
  • 做纺织的用什么网站推广赚钱app哪个靠谱
  • 陕西省建设网站 五大员过期网站设计的基本原则
  • 有没有免费b2b平台济南公司网站推广优化最大的
  • 智慧团建网站登录入口电脑版武汉百度开户电话
  • 怎么做一考试网站青岛网站建设维护
  • 怎样用西瓜影音做网站网站运营推广方式
  • 优秀的网页设计图片甘肃seo网站
  • 网站开发+进度表广告网络推广
  • 模拟购物网站开发项目无锡网站制作
  • 设计机构网站做网站的外包公司
  • 开个做网站的公司 知乎sem营销推广
  • 东莞长安营销型网站建设网站怎么优化到首页
  • 网站规划与建设 ppt网站收录是什么意思
  • 做网站代理商好赚吗?网址导航大全