MYSQL--(1.存储引擎 *2.事务*)

一 存储引擎:

        1.介绍

                1>在数据库管理系统当中通过使用数据引擎来实现数据的增删改,查询
                2>不同的存储引擎提供的有不同的存储机制,索引技巧等功能  MYSQL的核心,就是存储引擎
                3>同样的,用户也可以根据自己的需要进行选择,更改自己需要的存储引擎
                4>可以使用show engines 来查询当前所有的存储引擎

        2.分类介绍:

                1>先简单介绍存储引擎最常用的: MYLSAM  InnoDB  Memory

                2>全部存储引擎介绍:

        3.操作: 

-- 1.查看当前的默认存储引擎
show variables like '%storage_engine%';
在MYSQL5.5之前,是以MYLSAM作为默认的存储引擎的
在5.5之后,默认引擎变成了InnoDB

-- 2.查看具体的某个表所使用的引擎(看显示结果当中engine后面显示的,就是存储引擎)
show create table tablename;

-- 3.创建某个新表时设置存储引擎
create table(....) engine=enginenamn;

-- 4.修改某个已经存在的表的存储引擎
alter table tablename engine=enginename;

二 事务:

        1.介绍:

                事务是通过存储引擎实现的,而且目前来看,对于MYSQL仅仅只有InnoDBc才能够支持事务的使用

        2.作用:

                1>事务能够用来保证数据库的完整性,保证大量的SQL语句的执行,要么全部执行,要么全部不执行!

                2>事务用来对于DDL,DML,DCL进行操作,比如插入,修改,删除等操作,并且默认都是自动提交的!

        3.操作:

事务操作主要有以下几个
1.打开事务 Start Transaction
	任何一条的DML操作的执行,都标志着事务的开始
	-- 可以使用.begin.作为开始语句
2.提交事务(所有语句全部正常执行)  Commit Transaction
	成功的结束,会将所有的DML操作历史记录跟底层硬盘进行一次同步
3.回滚事务(语句执行不完全) Rollback Transaction
	结束失败,将所有的DML历史操作清空

但是需要注意的一点是,再平常的使用当中,系统会自动将每一条的DML看作是一个事务,自动的提交,但是在有多个语句的事务当中,应当是全部完成之后成功了,才会进行提交!所以需要我们手动的关闭自动提交的指令
set autocommit=0; 禁止自动提交
set autocommit=1; 开始自动提交


create database transaction_1;
use transaction_1;
create table acount(
id int primary key,
name VARCHAR(20),
money double
);

insert into acount VALUES(1,'张三',1000);
insert into acount VALUES(2,'李四',2000);

将1账户的钱转给2账户,使用事务的方式
set autocommit=0;
-- 查看状态
select @@autocommit;
begin;
update acount set money= money-200 where name='张三';
update acount set money= money+200 where name='李四';
-- 提交事务
commit;
-- 回滚事务
rollback;

end;

        4.事务的特性:

1.原子性:

        其实就是整体性,必须将事务当中的所有语句当作是一个整体,不可分割,事务开始后的所有操作,要么全部执行,要么全部都不会执行


2.一致性:

        也就是事务执行前后的状态必须要保持一致!


3.隔离性:

        在一些比较大的工程当中,有许多的事务,为了避免一些错误的产生,就需要对这些事务进行隔离处理


4.持久性:

        事务在提交之前,都可以通过回滚的方式而不让数据落地!但是一但提交,是无法再回滚的,是永久性的!

        5 事务的隔离级别:

                1.介绍:

                当多个事务对一个表进行操作的时候,为了避免几个事务同时对于表进行修改从而产生错误.使得最后的结果没有达到预期.因此就需要使用事务隔离 I

                2.分类:

                

                主要是四类,并且从上到下,其事务与事务之间的关联就越小,影响程度就越小 

                TIPS:mysql的默认隔离级别是第三种!

                                自然,不同的隔离级别,也会产生不一样的问题

 

                3.隔离级别相关操作:

查看隔离级别
 show variables like '%isolation%';
 
 -- 设置隔离级别(从上往下的关系程度越来越小,联系越小)
 set session transaction isolation level read unconmmitted;
 
 set session transaction isolation level read conmmitted;
 
 set session transaction isolation level repeatable read;
 
 set session transaction isolation level SERIALIZABLE;
 

               4.对于各个级别问题的概述*

 set session transaction isolation level read unconmmitted;

 -- 脏读,举一个简单的例子,上班组小王在月末发现银行卡里'获得'了工资,10000元,但是之后老板发现发错了,在小王快要消费的时候进行了rollback,实际上的数据并没有从磁盘当中进行复制读取,在提交之前,小王的账户就多了前,这就是脏读!也就是发生在数据还没有完全提交的时候

 set session transaction isolation level read conmmitted;
-- 这种级别会产生不可重复读:指的是对于A事务来说,在B事务执行过DML的一些语句之后,B事务提交之前,跟B事务提交之后,A读取出来的数据是不一样的,不是重复的,因此被称作不可重复读
 
 set session transaction isolation level repeatable read;
 -- 这种隔离级别会产生可重复读,相对于不可重复度,可重复读,无论在B事务提交前还是后,A读取的值是一样的,但是也有问题,A提交前后的值不一样,有不可重复读的存在!
 
 set session transaction isolation level SERIALIZABLE;
 -- 没有事务之间的问题,因为这种的隔离方式将所有的事务单独区分开了,一个事务只能够看着另外一个事务做完事情之后才能够进行,因此其效率比较的低下
 

                                                                OVER!感谢观看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/410774.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

用c# 自己封装的Modbus工具类库源码

前言 Modbus通讯协议在工控行业的应用是很多的,并且也是上位机开发的基本技能之一。相关的类库也很多也很好用。以前只负责用,对其并没有深入学习和了解。前段时间有点空就在这块挖了挖。想做到知其然还要知其所以然。所以就有了自己封装的Modbus工具类库…

Vue+SpringBoot打造在线课程教学系统

目录 一、摘要1.1 系统介绍1.2 项目录屏 二、研究内容2.1 课程类型管理模块2.2 课程管理模块2.3 课时管理模块2.4 课程交互模块2.5 系统基础模块 三、系统设计3.1 用例设计3.2 数据库设计 四、系统展示4.1 管理后台4.2 用户网页 五、样例代码5.1 新增课程类型5.2 网站登录5.3 课…

WampServer环境下载安装并结合内网穿透实现远程访问管理界面

文章目录 前言1.WampServer下载安装2.WampServer启动3.安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3.4 创建公网地址 4.固定公网地址访问 前言 Wamp 是一个 Windows系统下的 Apache PHP Mysql 集成安装环境,是一组常用来…

华为配置WDS背靠背业务示例

配置WDS背靠背业务示例 组网图形 图1 配置WDS背靠背组网示意图 业务需求组网需求数据规划配置思路配置注意事项操作步骤配置文件 业务需求 在某些企业网络中,有线网络部署受施工条件的限制,需要连接的网络之间有障碍物或传输距离较远,AP无法全…

这家宠物品牌的内容运营怎么做的?太好玩儿了吧

养宠的朋友应该多多少少对“诚实一口”这个牌子有所耳闻,2018年诚实一口品牌正式立项,虽然不算经典品牌,但在国内也是小有名气的宠物品牌。今天媒介盒子想和大家聊的不是产品,而是想聊聊作为成立时间不长的国产宠粮品牌是如何凭借…

5.4 内容管理模块 - 课程搜索

5.4 内容管理模块 - 课程搜索 文章目录 5.4 内容管理模块 - 课程搜索一、快速入门1.1 需求分析1.2 业务流程1.3 准备环境1.3.1 搭建 elasticsearch1.3.2 索引 概念 1.4 课程信息索引同步1.4.1 技术方案 一、快速入门 本项目使用elasticsearch作为索引及搜索服务 课程如果发布之…

Sora抢饭碗!好莱坞大亨停止,8亿美元投资

好莱坞消息,著名演员、影视投资人Tyler Perry在看到OpenAI最新发布的文生视频模型Sora后,停止了8亿(约57亿元)美元的投资。 该投资项目位于亚特兰大,本来要扩展十几个摄影棚用于影视剧的拍摄(类似横店影视…

大学开学季,创业入局做校园外卖,这些新的运营思路可以参考

在大学生的学习、生活和消费中,高校已经形成了具有独特属性的市场。这个市场既具有一般市场的特点,同时也有学校特有的一些特点。校园生活服务平台的商业模式就是在互联网发展的背景下出现的,并且已经变得非常成熟和稳定。 就校园外卖而言&a…

Java+SpringBoot+Vue+MySQL:疫情隔离酒店管理的全面技术解决方案

✍✍计算机毕业编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java、…

【云原生】Spring Cloud Gateway的底层原理与实践方法探究

🎉🎉欢迎光临🎉🎉 🏅我是苏泽,一位对技术充满热情的探索者和分享者。🚀🚀 🌟特别推荐给大家我的最新专栏《Spring 狂野之旅:从入门到入魔》 🚀 本…

切换Linux中的gcc版本

一、允许在系统中并行安装多个软件版本 命令1: yum -y install centos-release-scl 二、安装GCC 8及相关工具 命令2: yum -y install devtoolset-8-gcc devtoolset-8-gcc-c devtoolset-8-binutils 三、将系统中的默认shell环境切换到与devtool…

如何在Win系统搭建Oracle数据库并实现远程访问【内网穿透】

文章目录 前言1. 数据库搭建2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射 3. 公网远程访问4. 配置固定TCP端口地址4.1 保留一个固定的公网TCP端口地址4.2 配置固定公网TCP端口地址4.3 测试使用固定TCP端口地址远程Oracle 前言 Oracle,是甲骨文公司的一款关系…

Flink代码单词统计 ---批处理

flatMap:一对多转换操作,输入句子,输出分词后的每个词groupBy:按Key分组,0代表选择第1列作为Keysum:求和,1代表按照第2列进行累加print:打印最终结果 1.WordCount代码编写 需求&am…

js设计模式:路由模式

作用: 业务开发时,路由这个概念无论对于前后端来说肯定是不可缺少的 前端的vue-router就是很经典的路由模式 示例: //这里模拟实现一个vueclass Vue{constructor(options){Object.keys(options).forEach(item>{this[item] options[item]})}$mount(node){console.log(挂载…

基础知识常见算法识别

特征值识别 很多常见的算法,如AES、DES等,在运算过程中会使用一些常量,而为了提高运算效率,这些常量往往被硬编码在程序中 通过识别这些特征值,可以对算法进行一个大致判断 算法特征值(无特殊说明为十六…

Web3的奇迹:数字世界的新篇章

在数字化时代的潮流中,Web3正以其令人振奋的潜力和前景引领着我们进入一个全新的数字时代。作为互联网的下一代,Web3将重新定义我们对数字世界的认知和体验,为我们带来无限的可能性和奇迹。本文将深入探讨Web3的重要性、核心特征以及未来展望…

智能美颜引领短视频创作风潮:探秘美颜SDK技术背后的创新

美颜技术不仅改善了用户的拍摄体验,还推动了短视频创作的风潮。本文将深入探讨智能美颜在短视频创作中的应用,以及美颜SDK技术背后的创新。 一、短视频时代的美颜潮流 随着短视频应用的普及,用户对于视频质量的要求也越来越高。然而&#…

精品springboot科研项目工作量管理系统的设计与实现

《[含文档PPT源码等]精品基于springboot科研工作量管理系统的设计与实现[包运行成功]》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功! 软件开发环境及开发工具: Java——涉及技术: 前端使用技术&…

Wagtail安装运行并结合内网穿透实现公网访问本地网站界面

文章目录 前言1. 安装并运行Wagtail1.1 创建并激活虚拟环境 2. 安装cpolar内网穿透工具3. 实现Wagtail公网访问4. 固定的Wagtail公网地址 正文开始前给大家推荐个网站,前些天发现了一个巨牛的 人工智能学习网站, 通俗易懂,风趣幽默&#xf…

c# 异常处理

异常类 .NET Framework 类库中的所有异常都派生于 Exception 类,异常包括系统异常和应用异常。 默认所有系统异常派生于 System.SystemException,所有的应用程序异常派生于 System.ApplicationException。 系统异常一般不可预测,比如内存堆…