mysql事务与mysql储存引擎

  事务概念及存储引擎

  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

时间: 2024-10-02 06:19:52

mysql事务与mysql储存引擎的相关文章

day20——安装客户端、数据库连接、mysql事务、mysql操作数据

python的mysql操作 mysql数据库是最流行的数据库之一,所以对于python操作mysql的了解是必不可少的.Python标准数据库接口为Python DB-API, Python DB-API为开发人员提供了数据库应用 编程接口.参考地址:https://wiki.python.org/moin/DatabaseInterfaces,你可以查看python支持数据库的详细列表.不同的数据库需要下载不同的DB API模块.DB-API是一个规范.它定义了一系列必须的对象和数据库存取方

mysql 事务、游标

mysql 事务 在MySQL中只有使用了Innodb数据库引擎的数据库或表才支持事务,所以很多情况下我们都使用innodb引擎. 事务处理可以用来维护数据库的完整性,保证成批的SQL语句要么全部执行,要么全部不执行. 一般来说,事务是必须满足4个条件(ACID): Atomicity(原子性).Consistency(稳定性).Isolation(隔离性).Durability(可靠性) 1.事务的原子性:一组事务,要么成功:要么撤回. 2.稳定性 : 有非法数据(外键约束之类),事务撤回.

MySQL事务部分回滚-回滚到指定保存点

我们可以在mysql事务处理过程中定义保存点(SAVEPOINT),然后回滚到指定的保存点前的状态. 定义保存点,以及回滚到指定保存点前状态的语法如下. 定义保存点---SAVEPOINT 保存点名; 回滚到指定保存点---ROLLBACK TO SAVEPOINT 保存点名: 下面演示将向表user中连续插入3条数据,在插入第2条数据的后面定义一个保存点,最后看看能否回滚到此保存点. 1.查看user表中的数据 mysql> select * from user; +-----+-------

MySQL学习笔记(13)之储存引擎

储存引擎 1.概念:数据库对同样的数据,有着不同的储存方式和管理方式. 2.MyISAM: 1.MyISAM表是独立于操作系统的,这说明可以轻松地将其从Windows服务器移植到Linux服务器:每当我们建立一个MyISAM引擎的表时,就会在本地磁盘上建立三个文件,文件名就是表明. 2.MyISAM表无法处理事务,这就意味着有事务处理需求的表,不能使用MyISAM存储引擎. 3.MyISAM存储引擎特别适合在以下几种情况下使用: 3.1选择密集型的表.MyISAM存储引擎在筛选大量数据时非常迅速

MySQL 储存引擎 MyISAM 和 InnoDB 配置

MySQL 存储引擎 MyISAM 和 InnoDB 配置 MyISAM 和 InnoDB 最大特点: MyISAM : ① 不支持事务 . ② 表级锁定形式 ,数据在更新时锁定整个表 . ③ 不支持外键约束 ,只支持全文索引 . ④ 数据库在读取过程中相互阻塞 . ⑤ 数据单独写入或读取 , 速度较快且占用资源相对要少 . InnoDB: ① 支持事务 . ② 行级锁定 ,但是全表扫描仍然会是表级锁定 . ③ 支持分区.表空间 ,类似Oracle 数据库 . ④ 读写阻塞与事务隔离级别相关 .

MYSQL事务及存储引擎对比

Innodb支持事务,而myisam不支持事务. 事务的定义: 当多个用户访问同一份数据时,一个用户在更改数据的过程中可能有其他用户同时发起更改请求,为保证数据的更新从一个一致性状态变更为另一个一致性状态,这时有必要引入事务的概念. Mysql提供了多种引擎支持Innodb和BDB.Innodb存储引擎事务主要通过UNDO日志和REDO日志实现,Myisam和memory引擎则不支持事务.下图分别给出三种mysql引擎的区别和特性: Myisam存储引擎:由于该引擎不支持事务.也不支持外键,所以

MySQL密码管理、存储引擎及事务

MYSQL密码管理: 修改用户密码: (1) SET PASSWORD [FOR 'user'@'host'] = PASSWORD('cleartext password'); (2) UPDATE mysql.user SET Password=PASSWORD('cleartext password')  WHERE User='USERNAME' AND Host='HOST'; (3) mysqladmin -uUSERNAME -hHOST -p  password 'NEW_PAS

mysql储存引擎

Mysql数据库常用存储引擎 数据库存储引擎:是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建.查询.更新和删除数据.不同的存储引擎提供不同的存储机制.索引技巧.锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能.现在许多不同的数据库管理系统都支持多种不同的数据引擎.MySQL的核心就是插件式存储引擎. 查看存储引擎: mysql> show engines; MySQL给用户提供了许多不同的存储引擎.在MySQL中,不需要在整个服务器中使用同一种存储引擎,针对具体的要

事务以及MySQL事务隔离级别+MySQL引擎的区别

1.事务的基本要素:ACID 1.原子性(Atomicity): 事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节.事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样.也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位. 2.一致性(Consistency): 事务开始前和结束后,数据库的完整性约束没有被破坏 .比如 A 向 B 转账,不可能 A 扣了钱,B 却没收到. 3.隔离性(Isolation): 同一时间,只允许一个事