Mysql的数据库引擎有很多,最重要的就是MyISAM、InnoDB、heap(memory),此外还有BDB、archive数据表、csv、ndb、federated

InnoDB
 
优点:
1、对数据库事务支持,支持四种事务级别(read uncommitted、read committed、repeatable read、serializable)
2、提供行级锁(内建的)和外键,目的是处理大量数据库系统,行级锁锁定的只是一次事务中的记录,不会锁定数据表,所以其他的用户都可以去访问操作数据库,可以大大的提高效率。此外,它可以识别死锁(两个或多个进程互相等待,死循环),并自动终止其中的一个。
3、可以崩溃恢复,有一个缓冲区
 
缺点:
1、不支持全文索引
2、空间占用量大
3、不保存表行数,搜索行数时要全表扫描,比myIASM慢。
 
MYIASM引擎(MySQL默认)
 
myIASM分为:MyISAM static(数据列各自都有固定的长度、存取效率高、安全性高)、MyISAM dynamic(空间利用率高,自定义)、MyISAM compressed(访问速度快,但修改压缩后的数据)
1、对数据库事务不支持
2、不支持行级锁和外键,但支持表锁
3、数据库读写分离
4、支持全文索引
 
InnoDB和MyISAM两种引擎的选择
 
可以在不同的数据表中使用不同的引擎,即这两种引擎可以在同一数据库中使用。
1、节约空间和时间选择MyISAM
2、用到事务、安全性更高,需要用户同时操作选择InnoDB
3、没有绝对的最优,具体情况具体看待
  1)大尺寸的数据集趋向于选择InnoDB引擎,因为它支持事务处理和故障恢复。数据库的大小决定了故障恢复的时间长短,InnoDB可以利用事务日志(二进制)进行数据恢复,这会比较快主键查询在InnoDB引擎下也会相当快。主键不能太长
  2)批量插入使用myISAM快,因为它不支持事务,出现问题时不需要回滚
 
heap
 
heap数据表只存在内存中,使用散列索引(hash index),所以速度快
主要用途是充当临时数据表(MySQL服务停止运行,则消失)
主要适用于数量小,访问速度高的
 

最新文章

  1. tangram2.6(XE2)\framework框架加载包异常 调试的地方
  2. 使用Mulesoft建立webservice, simple方式,POJO
  3. linux 重新编译低版本gcc
  4. NOJ 1063 生活的烦恼
  5. SQL Server 2012 批量重建索引
  6. 1038: [ZJOI2008]瞭望塔
  7. 使用ambari搭建Hadoop平台
  8. Checkbutton 和 Radiobutton
  9. 异常 ORA-00257: archiver error. Connect internal only, until freed
  10. Less基础教程
  11. C/C++中const关键字的用法及其与宏定义的比较
  12. redis实现分布式可重入锁
  13. Linux基本命令总结(七)
  14. vue_组件间通信:自定义事件、消息发布与订阅、槽
  15. VS工具箱中添加DevExpress控件
  16. 小程序 新建项目底部tabbar
  17. 怎么用ajax下载文件
  18. 通过phantomjs 进行页面截图
  19. hduPiggy-Bank(完全背包)
  20. POJ3613 k边最短路

热门文章

  1. Careercup - Microsoft面试题 - 5649647234187264
  2. Unity的物理引擎是如何实现碰撞的呢?
  3. 3527: [Zjoi2014]力 - BZOJ
  4. discuz之搭建
  5. BZOJ 2820 YY的GCD
  6. BZOJ2694: Lcm
  7. Hibernate SQL方言 (hibernate.dialect)
  8. [工作记录] Android OpenSL ES: references & AAC related
  9. 制作一个可以给team所有成员用的开发者证书
  10. 研究AFIncrementalStore