码迷,mamicode.com
首页 > 数据库 > 详细

Mysql数据库引擎

时间:2018-08-14 11:36:58      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:就是   包含   rom   行锁   insert   外来键   位置   两种   默认   

Mysql 给我们提供了4中数据引擎: 

  MYISAM、HEAP和INNODB和BERKLEY(BDB)

这里着重说明常用的MYISAM和INNODB

 

MyIASM引擎

  1.MyIASM是MySQL默认的引擎,但是它没有提供对数据库事务的支持,不支持行级锁和外键

  因此INSERT(插入)或UPDATE(更新)数据时即写操作需要锁定整个表,效率便会低一些

  2.MYISAM强调了快速读取操作

  3.MyISAM格式的一个重要缺陷就是不能在表损坏后恢复数据。

 

InnoDB引擎

  Innodb引擎提供了对数据库ACID事务的支持,实现了SQL标准的四种隔离级别

  支持行锁和外来键。

MySQL运行时Innodb会在内存中建立缓冲池,用于缓冲数据和索引。

  1、覆盖索引查询时除了除了索引本身的包含的列,还可以使用其默认的聚集索引列

  2、nnoDB 中不保存表的具体行数,也就是说,执行select count(*) fromtable时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。

  3、对于INNODB的辅助索引,它的叶子节点存储的是索引值和指向主键索引的位置,然后需要通过主键在查询表的字段值,所以辅助索引存储了主键的值

  4、覆盖索引也可以用上INNODB 默认的聚集索引

  5、innodb引擎的所有储存了主键ID,事务ID,回滚指针,非主键ID,他的查询就会是非主键ID也可覆盖来取得主键ID

 

两种引擎的区别:

  1. InnoDB 提供了对数据库事务的支持,支持行锁和外键,而Myisam没有

  2.InnoDB中指定主键绑定预计索引,而Myisam中所有索引都是非聚集索引

  3.InnoDB使用的B-Tree ,而Mysiam使用的是B+tree

  

 

Mysql数据库引擎

标签:就是   包含   rom   行锁   insert   外来键   位置   两种   默认   

原文地址:https://www.cnblogs.com/oldma/p/9472679.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!