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

英文手机商城网站建设seo 的作用和意义

英文手机商城网站建设,seo 的作用和意义,多品牌网站建设,wordpress图片幻灯片事务 基本概念 事务是一个完整的业务逻辑,是一个最小的工作单元,不可再分。 一个完整的业务逻辑包括一系列的操作,这些操作是整个业务逻辑中的最小单元,这些操作要么同时成功,要么同时失败。 由于只有DML语句中才会…

事务

基本概念

事务是一个完整的业务逻辑,是一个最小的工作单元,不可再分。

一个完整的业务逻辑包括一系列的操作,这些操作是整个业务逻辑中的最小单元,这些操作要么同时成功,要么同时失败。

由于只有DML语句中才会有事务的概念,因此事务只和insert update delete语句有关。

说到底,说到本质上,一个事务其实就是多条DML语句同时成功,或者同时失败!

事务是怎么做到多条DML语句同时成功和同时失败的呢?

InnoDB存储引擎:提供一组用来记录事务性活动的日志文件

	事务开启了:insertinsertinsertdeleteupdateupdateupdate事务结束了!

在事务的执行过程中,每一条DML的操作都会记录到“事务性活动的日志文件”中。在事务的执行过程中,我们可以提交事务,也可以回滚事务。

提交事务&回滚事务

  • 提交事务

    ​ 清空事务性活动的日志文件,将数据全部彻底持久化到数据库表中。
    ​ 提交事务标志着,事务的结束。并且是一种全部成功的结束。

  • 回滚事务

​ 将之前所有的DML操作全部撤销,并且清空事务性活动的日志文件
​ 回滚事务标志着,事务的结束。并且是一种全部失败的结束。

​ 提交事务:commit; 语句
​ 回滚事务:rollback; 语句(回滚永远都是只能回滚到上一次的提交点!)

在MySQL中,默认的事务行为是自动提交的,每次命令成功之后就会进行一次自动提交。

通过执行命令start transaction关闭系统的自动提交。

回滚事务演示:

mysql> select * from t_student;
+----+-----------+------+
| no | name      | cno  |
+----+-----------+------+
|  1 | jack      |  100 |
|  2 | lucy      |  100 |
|  3 | lilei     |  100 |
|  4 | hanmeimei |  100 |
|  5 | zhangsan  |  101 |
|  6 | lisi      |  101 |
|  7 | wangwu    |  101 |
|  8 | zhaoliu   |  101 |
+----+-----------+------+
8 rows in set (0.00 sec)mysql> start transaction;
Query OK, 0 rows affected (0.01 sec)mysql> insert into t_student values(9,'ame',100);
Query OK, 1 row affected (0.01 sec)mysql> insert into t_student values(10,'ame',100);
Query OK, 1 row affected (0.00 sec)mysql> insert into t_student values(11,'ame',100);
Query OK, 1 row affected (0.00 sec)mysql> select * from t_student;
+----+-----------+------+
| no | name      | cno  |
+----+-----------+------+
|  1 | jack      |  100 |
|  2 | lucy      |  100 |
|  3 | lilei     |  100 |
|  4 | hanmeimei |  100 |
|  5 | zhangsan  |  101 |
|  6 | lisi      |  101 |
|  7 | wangwu    |  101 |
|  8 | zhaoliu   |  101 |
|  9 | ame       |  100 |
| 10 | ame       |  100 |
| 11 | ame       |  100 |
+----+-----------+------+
11 rows in set (0.00 sec)mysql> rollback;
Query OK, 0 rows affected (0.01 sec)mysql> select * from t_student;
+----+-----------+------+
| no | name      | cno  |
+----+-----------+------+
|  1 | jack      |  100 |
|  2 | lucy      |  100 |
|  3 | lilei     |  100 |
|  4 | hanmeimei |  100 |
|  5 | zhangsan  |  101 |
|  6 | lisi      |  101 |
|  7 | wangwu    |  101 |
|  8 | zhaoliu   |  101 |
+----+-----------+------+
8 rows in set (0.00 sec)

提交事务演示:

mysql> create table t_student(-> no int primary key auto_increment,-> name varchar(32)-> );
Query OK, 0 rows affected (0.03 sec)mysql> select * from t_student;
Empty set (0.00 sec)mysql> start transaction;
Query OK, 0 rows affected (0.00 sec)mysql> insert into t_student values(1,'jack');
Query OK, 1 row affected (0.00 sec)mysql> insert into t_student(name) values('nick');
Query OK, 1 row affected (0.00 sec)mysql> insert into t_student(name) values('nick');
Query OK, 1 row affected (0.00 sec)mysql> insert into t_student(name) values('nick');
Query OK, 1 row affected (0.00 sec)mysql> insert into t_student(name) values('nick');
Query OK, 1 row affected (0.00 sec)mysql> insert into t_student(name) values('nick');
Query OK, 1 row affected (0.00 sec)mysql> commit;
Query OK, 0 rows affected (0.01 sec)mysql> select * from t_student;
+----+------+
| no | name |
+----+------+
|  1 | jack |
|  2 | nick |
|  3 | nick |
|  4 | nick |
|  5 | nick |
|  6 | nick |
+----+------+
6 rows in set (0.00 sec)mysql> rollback;
Query OK, 0 rows affected (0.00 sec)mysql> select * from t_student;
+----+------+
| no | name |
+----+------+
|  1 | jack |
|  2 | nick |
|  3 | nick |
|  4 | nick |
|  5 | nick |
|  6 | nick |
+----+------+
6 rows in set (0.00 sec)

commit操作实际上是将数据持久化的操作,在进行这个操作之前,仍在事务进行当作,数据仍然可以进行回滚,但是数据持久化之后就不能进行回滚了。

事务的四个特性

  • A : 原子性

    事务是最小的工作单元,不可再分。

  • C: 一致性

​ 所有事务要求,在同一个事务当中,所有操作必须同时成功,或者同时失败,保证数据的一致性。

  • I: 隔离性

    不同的事务之间具有隔离,当两个事务想要操作同一张表的时候,他们之间的墙就会产生一定的隔离作用

  • D: 持久性

    事务开始的标志一般是start transaction, 事务最终结束的标志是进行commit操作,对数据进行了持久化,相当于将数据写进硬盘里。

事务的隔离性

事务和事务之间的隔离性具有四个不同的隔离级别:

  • 读未提交 read uncommitted
    • 事务A可以读取到事务B未提交的数据。
    • 但是这种隔离级别会出现脏读现象,我们称读到脏数据
  • 读已提交 read committed
    • 事务A只能读取到事务B已经提交的数据。
    • 不可重复读取数据:在事务开启之后,第一次读到的数据是3条,当前事务还没有结束,可能第二次再读取的时候,读到的数据是4条,3不等于4,称为不可重复读取。
  • 可重复读 repeatable read (mysql默认的隔离级别)
    • 两个事务对同一张表进行操作,不管对方是怎样操作的,各自只能看到自己事务中所做出的操作,即使事务B提交了,事务A也无法读取事务B修改后的数据。
  • 序列化 serializable(最高的隔离级别)
    • 效率最低,安全级别最高
    • 这种隔离级别表现为事务排队,不能并发,事务A还在操作表1,事务B如果想要对表1进行操作,需要等事务A结束。

验证各种事务隔离级别

查看隔离级别:

查看系统隔离级别:select @@global.tx_isolation;
查看会话隔离级别(5.0以上版本)select @@tx_isolation;
查看会话隔离级别(8.0以上版本)select @@transaction_isolation;
mysql> select @@transaction_isolation;
+-------------------------+
| @@transaction_isolation |
+-------------------------+
| REPEATABLE-READ         |  # mysql默认的隔离级别
+-------------------------+

设置隔离级别:

mysql> set global transaction isolation level read uncommitted;
mysql> set global transaction isolation level read committed;
mysql> set global transaction isolation level repeatable read;
mysql> set global transaction isolation level serializable;

设置完后记得重新登陆一下mysql

  • read uncommitted验证

image-20220718140606285

右边事务进行insert后,左边事务是看的见的

  • read committed验证

image-20220718141117168

  • repeatable read验证

image-20220718142107958

右侧事务修改完之后,左侧事务也看不见修改。

  • serializable验证

image-20220718143721244

右边事务在等左边事务commit,才会执行。

http://www.hkea.cn/news/409738/

相关文章:

  • 网站怎么做移动图片不显示不出来吗芭嘞seo
  • 旅游网站建设服务器ip域名解析
  • 企业网站建设三个原则百度指数资讯指数是指什么
  • 房地产集团网站建设方案软文文案案例
  • 阜蒙县建设学校网站是什么北京seo编辑
  • 珠海建设局网站十大经典事件营销案例分析
  • 创建网站开发公司互联网推广引流是做什么的
  • 万盛集团网站建设seo网站推广全程实例
  • 做教育的网站需要资质吗网站怎么开发
  • 微网站怎么做滚动中国万网域名注册官网
  • 个人如何免费建网站seo在线优化工具 si
  • 双线主机可以做彩票网站吗网络推广合作协议
  • 做外贸的b2b网站域名批量查询系统
  • 建设网站需要哪些职位网站建设策划书
  • 苏州网站建设哪里好网站点击排名优化
  • 网站建设收费标准策划百度推广关键词越多越好吗
  • 网站怎么做更新吗如何建立网页
  • 国外建设工程招聘信息网站tool站长工具
  • 专业做相册书的网站电商网站建设制作
  • 银川网站开发公司电话东莞网
  • 环境保护局网站管理制度建设百度指数的主要功能有
  • 安装wordpress提示500错误关键词优化的策略有哪些
  • 企业网站建设公司排名深圳高端seo公司助力企业
  • 做网站套餐网站seo
  • 网站上的代码网页怎么做的下载百度软件
  • 网站功能模块建设搜狗推广
  • 网站做推广有用吗网站页面设计
  • 做简报的网站广州搜发网络科技有限公司
  • 南乐县住房和城乡建设局网站制作网站的步骤是什么
  • 金华做网站最专业的公司搜易网提供的技术服务