mysql支持事务的储存引擎_「mysql事务与mysql储存引擎」- 海风纷飞Blog
事务概念及存储引擎
1.0 为何要事务?
先来看一个场景,银行转账汇款:
李彦宏和周鸿祎天天打架,现在让李彦宏给周鸿祎转款1000 元
设计如下表
account表
编号(id)用户名(user)金额(cash)
1李彦宏3000
2周鸿祎2000
传统的做法:
mysql> update account set cash = cash -1000 where id =2;
update account set cash =cash +1000 where id=1;
缺陷:
不安全。比如减少李彦宏钱的指令执行了,但是增加周鸿祎钱的指令却没有执行成功。
这个时候,我们就要使用mysql的事物机制。
1.1事务
1.2事务的使用
事务相关语句 DTL
1.3事务的四种特性:
1.原子性,是一个不可分割的逻辑单元,一组sql语句,要么都执行,要么都不执行。
2.隔离性,事务中的执行过程是不可见的。
3.持久性,事务一旦提交,就不可撤销。
4.一致性,事务在发生之前和发生之后,数据是一致。(能量守恒)
1.4事务的原理:
传统方式:
事务机制:
上面的例子:李彦宏给周鸿祎转钱用事物的代码:
#开启事物
Start transaction;
#执行的代码
Update account set cash=cash-1000 where id=1;
Update account set cash+1000 where id=2;
#提交
commit
# 语句出错 可以回滚
#rollback
1.5事务在哪些场合下应用:
一般来说,对于安全性要求比较的业务,建议使用事务。
2.0 mysql存储引擎
何为存储引擎?
我们说数据库是组织、存储和管理数据的仓库。那么,数据库存储数据的方式,就是存储引擎。
在mysql中,存储引擎是以插件的形式加载的。Mysql的存储引擎种类繁多,对于我们来说,要熟悉两种存储引擎去,MyISAM和inonoDB。
Myisam不支持事务。
Innodb支持事务。
全文索引在mysql5.5以前版本中,innodb是不支持的,但是5.5以后的版本支持。
常见存储引擎
mysql默认的存储引擎,
在mysql5.5以前的版本:MyISAM
在mysql5.5以后的版本:innodb
如果我们要自己声明存储引擎:
Create table()engine=myisam default charset utf8
mysql支持事务的储存引擎_「mysql事务与mysql储存引擎」- 海风纷飞Blog相关推荐
- laravel services.php,「Laravel框架中使用Service模式」- 海风纷飞Blog
若将商业逻辑都写在controller,会造成controller肥大而难以维护,基于SOLID原则,我们应该使用Service模式辅助controller,将相关的商业逻辑封装在不同的service ...
- centos7查看当前端口_「Centos7开放及查看端口」- 海风纷飞Blog
1.开放端口 firewall-cmd --zone=public --add-port=5432/tcp --permanent # 开放5432端口 firewall-cmd --zone=pu ...
- docker项目部署 php_「Docker部署PHP+Vue项目」- 海风纷飞Blog
创建Docker映射目录-- vue_demo # Demo项目 -- php_vue -- docker-compose.yaml -- nginx ---- apps ...
- 上海时间戳 php,「PHP的时间戳与具体时间转化」- 海风纷飞Blog
三个内置函数:time() //获取UNIX系统时间戳 mktime(hour,minute,second,month,day,year) //将指定时间转化为时间戳 date(时间格式,时间戳 ...
- mysql重复读导致余额不对_我所理解的MySQL之四:事务、隔离级别及MVCC
mysql教程栏目介绍MySQL相关的事务.隔离级别及MVCC. MySQL 系列的第四篇,主要内容是事务,包括事务 ACID 特性,隔离级别,脏读.不可重复读.幻读的理解以及多版本并发控制(MVCC ...
- mysql所选路径已经存在_「mysql第二次安装不了」mysql安装失败怎么清理干净?
很多朋友装mysql数据库时出现无法安装的情况,更可怕的是删除相关文件仍然无法安装,很伤脑筋,相信很多朋友都有过这种经历. 其实导致数据无法安装的原因大多数是因为之前安装的Mysql数据没有卸载干净, ...
- mysql容器化后的缺点_沙场秋点兵——MySQL容器化性能测试对比
容器技术改变了应用交付.运行的方式,几乎各种Linux环境下的应用程序都可以使用容器来运行.但是否能在容器环境里运行数据库应用,以及数据库应用是否适合在容器里运行,一直都是大家很关注的问题,今天我们就 ...
- mysql查询财两个人信息_春 东财《MySQL数据库系统及应用》在线作业二(随机)
<春 东财<MySQL数据库系统及应用>在线作业二(随机)>由会员分享,可在线阅读,更多相关<春 东财<MySQL数据库系统及应用>在线作业二(随机)(112 ...
- e语言mysql怎么放在超级列表框_易语言中的MYSQL操作之超级列表框使用
.版本 2 .支持库 mysql .支持库 iext .支持库 CnCalendar .支持库 spec .程序集 窗口程序集_启动窗口 .程序集变量 MySQL句柄, 整数型 .程序集变量 记录集, ...
最新文章
- pytorch 常用问题解决
- python爬虫代码实例-Python爬虫之urllib示例
- 汉王人脸1000万用户后的第一人诞生
- 安装Google Object Detection API
- 高效管理ASP.NET的JavaScript库
- 如何使用Caddy部署Vue项目
- 认识 URL 及其编码
- C++:在堆上创建对象,还是在栈上?
- 浅谈Cglib、Jdk以及ProxyFactory实现动态代理上的区别
- 基于javaweb+jsp的超市便利店管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Bootstrap Ajax)
- 前端基础(二十一):移动端H5调用摄像头拍照旋转解决方案
- 计算机word表格加法公式,如何插入公式以求和Word中表格的一列或一行?
- HMC_Hamiltonian Monte Carlo 推导,代码
- this java 错误_java异常错误处理
- 俄勒冈大学计算机科学专业,俄勒冈大学计算机与信息科学详解 热门专业还等什么...
- Iterm2 + zsh 安装教程
- 一个字都没写,也能发Nature子刊?
- 混合型数据的邻域条件互信息熵属性约简算法
- python语法格式
- 11.全连接卷积神经网络 FCN
热门文章
- CSS(boxshadow+渐变+动画)
- 芭蕾挑战(FLAG)第一天
- NC63发送消息实例
- .net 5 自包含提示选定目标Target Framework设为windows
- 一览GitHub上最受程序欢迎的5大Java开源项目
- 二十九、pycharm中报错“too many blank lines (3) ”等类似错误
- kubenetes(k8s)集群部署使用
- K8s云原生存储Rook详解
- 如何在步进音序器中制作简单的节奏
- Generic Webhook Trigger 实现特定提交触发自动构建