【MySQL】数据库引擎04

一.引擎介绍

mysql数据库引擎取决于mysql安装的时候如何进行编译.要添加一个新的引擎就必须重新编译.mysql5.7源码安装mysql5.7源码安装,,通常在缺省情况下,mysql支持三大引擎:ISAM,MYISAM和HEAP(堆),另外两种类型INNODB和BERKLEY,也是常常使用的,如果以上的数据库引擎都不符合我们的需要,我们也可以使用MYSQL+API自定义引擎.

1.ISAM

适用于:数据库查询的次数远大于更新的次数

优点:读取操作速度快,而且不占用大量内存和存储资源

缺点:不支持事务,不支持外键,不能够容错(如果你的硬盘坏了,数据是无法恢复的)

解决方法:备份文件

2.MYISAM

简介:是ISAM的扩展格式和缺省数据库引擎,包含ISAM里面所有的内容

升级:在ISAM的基础上提供了索引,字段管理,表格锁定机制(优化了多并发),修复数据库文件的MyISAMCHK工具,恢复浪费空间的 MyISAMPACK工具等.

代价:需要经常运行optimize table命令用来恢复和更新良妃的空间.

优点:弥补了ISAM的部分不足之处,读取速度快.

缺点:写的速度比较慢并且不能在表损坏后恢复数据.不支持事务和外键

3.HEAP

简介:HEAP允许只驻留在内存里的临时表格。

优点:驻留在内存里让HEAP要比ISAM和MYISAM都快.

缺点:管理的数据是不稳定的.(如果在关机之前没有进行保存,那么所有的数据都会丢失。)

4.InnoDB

优点:支持事务,支持外键,

缺点:比以上三个数据库引擎慢很多.

5.自定义引擎

MYSQL+API:通过这些东西自己组装适合自己的引擎

二.几种数据库引擎的比较

1.MyISAM与InnoDB的区别

  • MYISAM中的表强调的是性能;而InnoDB强调的是结构
  • 执行数度比InnoDB类型更快
  • InnoDB支持事务,MYISAM支持
  • InnoDB支持索引,
  • InnoDB支持外键,
  • InnoDB支持行级锁
  • InnoDB不支持fulltext类型的索引,
  • 不保存表的具体行数:如果要查看这个表的行数,需要遍历整个表.而MYISAM则只需要简单的读取就可以了.
  • AUTO_INCREMENT:必须包含含有该字段的索引,MYISAM可以和其他字段一起建立联合索引.
  • DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。

三.适用范围

1.InnoDB

  • 可靠性要求比较高,或者要求事务
  • 表更新和查询都相当的频繁,并且表锁定的机会比较大的情况指定数据引擎的创建

2.MyISAM

  • 做很多count 的计算
  • 插入不频繁,查询非常频繁
  • 没有事务
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值