MYSQL存储引擎小记

来源:互联网 发布:农村淘宝合伙人官网 编辑:程序博客网 时间:2024/05/01 10:37

MyISAM

  1. MyIsAM是mysql5.5之前的默认引擎,它支持B-tree/FullText/R-tree
  2. 锁表级别为表锁,表锁优点开销小,加锁快;缺点是粒度大,发生锁冲动概率较高,容纳能力低,这种引擎适合查询为主的业务。
  3. 该引擎不支持事务,也不支持外键。
  4. 该引擎强调快速读取操作,他存储表的行数,于是
    select count(*) from table 时只需直接读取已经存储的值就可以,不需要进行全表扫描。

InnoDB

  1. 支持事务,支持回滚,支持外键
  2. 支持索引类型为:Hash/B-tree
  3. 锁级别为:行锁;
    优点:适合高并发级别的频繁表修改,高并发的性能优于MyisAM.
    缺点:性能消耗较大,索引不仅缓存自身,还缓存数据,相比MyisAm需要更大的内存。
  4. 不保存表的具体行数
    select count(*) from table 需要扫描一遍表来计算有多少行。

ACDB事务

  1. A事务的原子性(Atomicity):指一个事务要么全部执行,要么不执行。不可能出现执行一半的情况。
  2. C事务的一致性(Consistency):指事务的运行并不改变数据库中数据的一致性。例如完整性约束了a+b=10,如果改变了a的值,那么b的值也会随之改变,因为两值的和是不变的。
  3. I事务的独立性(Isolation):事务的独立性也称为隔离性。是指两个以上的事务不会出现交错执行的状态,因为这样可能为导致数据不一致。
  4. D持久性(Durability):事务的持久性行,是指事务执行成功后便是持久的保存到数据库中了,不会无缘无故的回滚。

Memory

  1. 是内存级别的存储引擎,数据存储在内存中,所以能存储的数据量较小。
  2. 因为内存的特性,所以数据的一致性较差,
  3. 锁级别为表锁,不支持事务,但访问速度非常快
  4. 默认使用hash索引。
0 0
原创粉丝点击