MySQL存储引擎、事务

news/2024/9/7 13:06:42

一、

MySQL常用的存储引擎主要有两种:MylSAM 和InnoDB

MylSAM:

1、不支持事务管理 (最新版本好像也支持事务管理了),但是每次查询操作是原子的

2、支持表锁,每次操作都是对整张表进行加锁

3、存储所有行数

4、一个MylSAM表有三个文件:索引文件、表结构文件、数据文件

5、采用非聚集式索引:辅索引和主索引基本一致,但是辅索引不保证唯一性

InnoDB:

1、支持ACID的事务管理 支持事务的四种隔离级别

2、支持行锁,支持写并发

3、不存储所有行数

4、一个InnoDB引擎存储在一个或者·多个文件中,受操作系统文件大小的限制

5、采用聚集式索引,辅索引的数据域存储主键的值,从辅索引查找数据时,需要先通过辅索引查找到主键值,再访问辅索引

二、什么是事务

事务就是要么都成功要么都失败。

事务有一个原则:ACID

ACID:原子性、一致性、隔离性、持久性

原子性:一个事务中的操作要么都成功要么都失败

一致性:事务前后数据的完整性保持一致

隔离性:一个事务再提交之前对于其他事务来说是不可见的

持久性:事务一旦提交是不可逆的,事务一旦提交他对数据库进行的操作会被永久的保存到数据库中(如果出现错误,事务没有提交就恢复到原状,事务已经提交,就持久化到数据库不会变了)

事务的四种隔离级别:

read uncommit:读未提交(也叫脏读)可能会读到其他事务未提交的数据

read commit:读已提交,(一个事务内读同一行数据)两次读取结果不一致叫做不可重复读,只读取已经提交事务的数据,可以避免脏读的发生(不一定是错误,只是某些场合不适用(就是他这个事务执行过程中,其他事务进行了提交导致数据变化))

repeatable read:可重复读,这是sql的默认级别,就是每次读取结果都相同 (但是可能出现幻读的情况,在一个事务内读取到了别的事务插入的数据,导致前后读取不一致)

serializable:串行 一般不使用 他会给每一行读取的数据加锁,会导致大量超时和锁竞争的问题。

例子:

set autocommit =0   //关闭事务的自动提交
set autocommit = 1 //开启事务的自动提交 默认是开启的
start TRANSACTION --- 标记一个事务的开始,从这个以后得sql都在同一个事务内
commit  ---事务提交
ROLLBACK --出现错误回滚
SET autocommit =1 ---事务结束开启事务的自动提交
SAVEPOINT 保存点名  --- 设置一个事务的保存点
ROLLBACK TO 保存点名 --回滚到保存点
RELEASE SAVEPOINT ----保存点名 删除保存点


http://wed.xjx100/news/1411900.html

相关文章

云原生周刊:Argo CD v2.12 发布候选版本 | 2024.06.24

开源项目推荐 kOps kOps - Kubernetes Operations,是一个用于创建、销毁、升级和维护生产级高可用 Kubernetes 集群的工具。它支持在 AWS、GCP、DigitalOcean、Hetzner、OpenStack 和 Azure 上创建集群。 kftray kftray 是一款使用 Tauri(Rust 和 Ty…

顶象异形滑块验证码识别技术详解

在数字化时代,网络安全问题日益凸显,验证码作为一种重要的安全验证手段,广泛应用于各类网站和应用中。其中,顶象异形滑块验证码以其独特的设计和高效的防护能力,成为许多企业和平台的首选。本文将深入探讨顶象异形滑块…

DBeaver通过jdbc方式连接ES(免证书)

前言 之前其实已经分享过DBeaver连接ES,为什么重新分享一篇,用过的肯定知道,之前那种方式需要ES服务的服务器上装证书,免费证书只能用一个月。这次分享的就是解决这个时间限制问题,但是需要用一个自己开发的jar,而且暂未上到maven的中心库。 一、先看效果 证书方式 自研…

HTML【介绍】

HTML【介绍】 一、Web认知 1.网页组成 文字、图片、音频、视频、超链接 2.五大浏览器 IE浏览器、火狐浏览器(Firefox)、谷歌浏览器(Chrome)、Safari浏览器、欧朋浏览器(Opera) 3.Web标准的构成 HTML…

【知识图谱】基于neo4j开发的信息化文档分析系统(源码)

一、项目介绍 一款全源码,可二开,可基于云部署、私有部署的企业级知识库云平台,一款让企业知识变为实打实的数字财富的系统,应用在需要进行文档整理、分类、归集、检索、分析的场景。 为什么建立知识库平台? 助力企业…

项目总结-前端路由hash和history

项目总结-前端路由hash和history router模块 路由需要实现的功能 当浏览器地址发生变化的时候,切换页面点击浏览器后退前进的时候,网页内容发生变化刷新浏览器,网页加载当前路由对应内容 路由主要是通过监听事件,并利用js实现…

数据库期末复习知识点

A卷 1. 选择题(30) 2. 判断范式(10) 判断到第三范式 3. 程序填空(20) 4. 分析填空(15) 5. 写SQL(25) 5一题 恶性 B卷 1. 单选(30) 2. 填空 (20) 3. 程序填空(20) 4. 写SQL(30) 知识点 第一章 数据库管理系统(DBMS) 主要功能 数据定义功能 (DDL, 数据定义语言, …

Excel 宏录制与VBA编程 —— 11、工作表及工作簿操作(附:Worksheets与Sheets区别)

代码1 - Worksheets与Sheets区别 Worksheets表示普通工作表;Sheets即可表示普通工作表也可表示图标工作表。 下面模块中代码结果是一样的,大家理解时可结合上面区别说明进行了解 Sub Test()Worksheets("Sheet1").Range("A1").Value 100Sheets("Sheet…