事务概念及存储引擎
来源:互联网 发布:sjf进程调度算法 编辑:程序博客网 时间:2024/05/17 12:18
事务概念及存储引擎
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
转自:http://www.cnblogs.com/caicaizi/p/5923414.html
- 事务概念及存储引擎
- 小贝_mysql 存储引擎及事务概念
- MyISAM InnoDB 存储引擎的比较和事务的概念
- 数据库系统概念--(范式,存储,查询,事务,引擎)
- Mysql 存储引擎与其特点 及事务介绍
- MySQL之数据库存储引擎及事务ACID特性
- mysql事务及引擎
- mysql存储引擎与事务
- 数据库:事务(存储引擎)
- Mysql存储引擎与事务
- mysql存储引擎的概念
- 存储引擎概念(基本概念)
- 存储引擎 事务 索引 存储过程
- mysql 创建事务及查看表信息(存储引擎等基本信息)
- 事务及分布式事务概念介绍
- 数据库事务概念及特性
- MYSQL触发器、存储引擎、事务语法
- 浅析Mysql InnoDB存储引擎事务原理
- (连接数据库)未处理的“System.Da…
- XML 实例
- 探讨java深入的不变模式
- 文件流
- SpringMvc教程(二)--核心类与接口
- 事务概念及存储引擎
- 四元数和欧拉角以及方向余弦的区别
- 环信SDK集成的各种坑的解决方法
- StreamReader和StreamWriter
- 多态之虚方法
- cpu 频率查看
- 调用ODBC中SQLBindParameter引发的段错误
- Struts2 环境配置
- 多态之抽象类