美文网首页
mysql 事务学习

mysql 事务学习

作者: 风情云淡 | 来源:发表于2017-05-07 19:23 被阅读22次

1: mysql  存储引擎 主要包括 innodb ,myisam ,memory 等等

innodb 与 myisam 优缺点对比:

innodb 支持事务处理(ACID), 支持行锁,更强大的索引

myisam 在数据量大,查询时效率高

1:存储结构   

myisam 数据保存在三个文件中,第一个文件的名字以表的名字开始,扩展名指出文件类型。.frm文件存储表定义。数据文件的扩展名为.MYD (MYData)。索引文件的扩展名是.MYI

innodb 数据都保存在一个文件中

2: 存储空间

MyISAM:可被压缩,存储空间较小。支持三种不同的存储格式:静态表(默认,但是注意数据末尾不能有空格,会被去掉)、动态表、压缩表。

InnoDB:需要更多的内存和存储,它会在主内存中建立其专用的缓冲池用于高速缓冲数据和索引。

3、 事务支持

MyISAM:强调的是性能,每次查询具有原子性,其执行数度比InnoDB类型更快,但是不提供事务支持。

InnoDB:提供事务支持事务,外部键等高级数据库功能。 具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACID compliant))型表。

4、 CURD操作

MyISAM:如果执行大量的SELECT,MyISAM是更好的选择。(因为没有支持行级锁),在增删的时候需要锁定整个表格,效率会低一些。相关的是innodb支持行级锁,删除插入的时候只需要锁定改行就行,效率较高

InnoDB:如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表。DELETE 从性能上InnoDB更优,但DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除,在innodb上如果要清空保存有大量数据的表,最好使用truncate table这个命令。

5、 外键(一个表的一列,作为另一表的主键)

MyISAM:不支持

InnoDB:支持

innodb 事务 有四种隔离级别:(聚簇索引 包括 主键b+tree 辅助键 b+tree)

脏读:当一个事务update 一行数据,没有commit ,另一个事务会读取到未提交的数

不可重复读:一个事务在执行过程中,查询了两次数据,另外一个事务更新了该条数据,导致这个事务两次读的数据不一致

幻读:一个事务在执行时,另一个事务向里面插入一条新的数据,会出现新数据没有执行事务操作。

1:不可提交读 会出现脏读 , 不可重复读 , 幻读

2:可提交读  会出现不可重复读,幻读

3:可重复读 会出现幻读

4:可串行读 都不会出现 , 但使用锁会较多,占用内存资源

锁类别:

1:共享锁 : 可读  不可更新

2:排它锁 :不可读,不可更新

相关文章

  • MySQL基础——事务

    上篇文章学习了MySQL基础——多表查询,这篇文章学习MySQL基础——事务。 事务 事务是一组操作的集合,它是一...

  • Redis学习笔记:事务

    Redis学习笔记:事务 原文链接:Redis学习笔记:事务 一、事务的描述 和MySQL一样,Redis中也有事...

  • mysql 事务学习

    1: mysql 存储引擎 主要包括 innodb ,myisam ,memory 等等 innodb 与 myi...

  • mysql事务学习

    并发事务带来的问题: 1.脏写:就是最后的更新覆盖了由其他事务所做的更新。 2.脏读:就是读取到了其他事务已修改未...

  • MySQL系列之事务日志Redo log学习笔记

    MySQL系列之事务日志Redo log学习笔记 学习本博客之前需要储备知识: MySQL体系架构 InnoDB存...

  • 面试:mysql 事务和锁的解释

    对于mysql中注重事务优化的就是innodb引擎,我们学习一下innodb事务; 什么是事务? 事务就是一系列的...

  • 面试:mysql 事务和锁的解释

    对于mysql中注重事务优化的就是innodb引擎,我们学习一下innodb事务; 什么是事务? 事务就是一系列的...

  • Mysql事务

    1) mysql事务的ACID特性 2)MySQL事务隔离级别

  • MySQL系统学习(05):事务隔离性与隔离级别

    原文:MySQL系统学习(05):事务隔离性与隔离级别 数据库事务 提到事务,大家都不陌生。在刚开始学习数据库的时...

  • MySQL进阶——存储引擎

    上篇文章我们学习了MySQL基础——事务,这篇文章学习MySQL进阶——存储引擎。 存储引擎 存储引擎就是存储数据...

网友评论

      本文标题:mysql 事务学习

      本文链接:https://www.haomeiwen.com/subject/npxjtxtx.html