zoukankan      html  css  js  c++  java
  • 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事务

      

    mysql事务

      1.2事务的使用

      事务相关语句 DTL

      

    mysql 事务语法

      1.3事务的四种特性:

      1.原子性,是一个不可分割的逻辑单元,一组sql语句,要么都执行,要么都不执行。

      2.隔离性,事务中的执行过程是不可见的。

      3.持久性,事务一旦提交,就不可撤销。

      4.一致性,事务在发生之前和发生之后,数据是一致。(能量守恒)

      1.4事务的原理:

      传统方式:

      

    mysql 事务

      事务机制:

      

    mysql事务的原理

      上面的例子:李彦宏给周鸿祎转钱用事物的代码:

      #开启事物

      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储存引擎

      mysql默认的存储引擎,

      在mysql5.5以前的版本:MyISAM

      在mysql5.5以后的版本:innodb

      如果我们要自己声明存储引擎:

      Create table()engine=myisam default charset utf8

  • 相关阅读:
    Go语言的流程控制(条件,选择,控制,跳转,闭包)
    Go语言的map
    数据库-关系模型
    数据库的格式化模型(层次模型和网状模型)
    数据库-数据模型
    操作系统的功能与定义
    操作系统功能和定义
    操作系统应用程序
    密码学概论
    JAVA多线程提高四:多个线程之间共享数据的方式
  • 原文地址:https://www.cnblogs.com/caicaizi/p/5923414.html
Copyright © 2011-2022 走看看