MySQL的存储引擎

InnoDB:

  MySQL5.5之后的默认存储引擎。

  采用MVCC来支持高并发,并且实现了四个标准的隔离级别(默认可重复读)。

  支持事务,支持外键、支持行锁、非锁定读(默认读取操作不会产生锁)

  行锁优点是适用于高并发的频繁表修改,高并发是性能优于 MyISAM。缺点是系统消耗较大,索引不仅缓存自身,也缓存数据,相比 MyISAM 需要更大的内存。

  行级锁都是基于索引的,如果一条SQL语句用不到索引是不会使用行级锁的,会使用表级锁把整张表锁住

  InnoDB存储引擎采用Next-Key Locking机制来避免幻读。

  在Next-Key Lock 算法下,不仅仅是锁住扫描到的索引,而且还锁住这些索引覆盖的范围(gap)。因此对于这个范围内的插入都是不允许的。

  表是基于聚簇索引建立的。

  聚簇索引对主键查询有很高的性能。二级索引中必须包含主键列,所以主键列最好别太大。

  内部做了很多优化,包括从磁盘读取数据时采用的可预测性读、能够自动在内存中创建哈希索引以加速读操作的自适应哈希索引、能够加速插入操作的插入缓冲区等。

  通过一些机制和工具支持真正的热备份。其它存储引擎不支持热备份,要获取一致性视图需要停止对所有表的写入,而在读写混合场景中,停止写入可能也意味着停止读取。

MyISAM:

  MyISAM 提供了大量的特性,包括全文索引、压缩表、空间数据索引等。

  应该注意的是,MySQL 5.6.4 也添加了对 InnoDB 存储引擎的全文索引支持

  MyISAM不支持事务和行级锁,而且无法在崩溃之后安全恢复;

  它对整张表加锁,而不是某行。

  读取时对读到的所有表加共享锁,写入时对表加排他锁。

  并发插入:在表有读取查询的同时,也可以插入新数据。

  支持地理空间搜索。

  如果不在乎可扩展能力和并发能力,以及崩溃后数据丢失,却对InnoDB空间占用过多比较敏感,可以考虑用MyISAM。

  如果不需要支持事务,主要是select和insert操作,(比如日志型应用),可以考虑用MyISAM。

比较:

  事务:InnoDB 是事务型的。

  备份:InnoDB 支持在线热备份。

  崩溃恢复:MyISAM 崩溃后发生损坏的概率比 InnoDB 高很多,而且恢复的速度也更慢。

  并发:MyISAM 只支持表级锁,而 InnoDB 还支持行级锁。

  其它特性:MyISAM 支持压缩表和空间数据索引。

  MyISAM适合查询和插入为主的应用,InnoDB适合频繁的修改和安全性较高的应用。

Memory:

  Memory 是内存级别存储引擎,数据存储在内存中,所以他能够存储的数据量较小。

  因为内存的特性,存储引擎对数据的一致性支持较差。

  锁级别为表锁,不支持事务。但访问速度非常快,并发写入性能较低,并且默认使用 hash 索引。

最新文章

  1. RSA非对称加密,使用OpenSSL生成证书,iOS加密,java解密
  2. sql server 语句使用规范
  3. C#对DBF文件的操作
  4. MySQL存储引擎总结
  5. Detecting diabetic retinopathy in eye images
  6. Spark的任务处理流程
  7. 2014 Multi-University Training Contest 7
  8. [转载]Linux的时间与时钟中断处理
  9. Today See>
  10. .htaccess和license文件编写
  11. MySql的安装与卸载
  12. Laravel 源码解读系列第四篇-Auth 机制
  13. textarea的不可拉伸和不可编辑
  14. DNS解析类型的区别
  15. 学号20175313 《实现Linux下od -tx -tc XXX的功能》第九周
  16. layui中radio的动态加载(进入修改页面时,设置radio)
  17. spring jdbctemplate调用存储过程,返回list对象
  18. 【精选】Jupyter Notebooks里的TensorFlow图可视化
  19. Distribution(F题)---第八届河南省程序设计大赛
  20. UI5-文档-4.30-Debugging Tools

热门文章

  1. git使用笔记(十二)stash
  2. angularJS前端分页插件
  3. 自动清理N天前的二进制日志
  4. ubuntu server安装kvm
  5. ClusterId read in ZooKeeper is null 处理
  6. 【Linux】NAT模式下关于主机ping不通虚拟机的问题
  7. c# 深拷贝与浅拷贝的区别分析及实例
  8. uploadify图片上传配置
  9. 与http协作的web服务器、http首部(第五章、第六章)
  10. [Luogu 2221] HAOI2012 高速公路