mysql存储引擎InnoDB、MyISAM、MEMORY总结

  1. InnoDB存储引擎
    1. InnoDB中,创建的表的表结构存储在.frm文件中(我觉得是frame的缩写吧)。数据和索引存储在innodb_data_home_dir和innodb_data_file_path定义的表空间中。
    2. InnoDB的优势在于提供了良好的事务处理、崩溃修复能力和并发控制,支持外键。缺点是读写效率较差,占用的数据空间相对较大。
  2. MyISAM存储引擎
    1. MyISAM是MySQL中常见的存储引擎,曾经是MySQL的默认存储引擎。MyISAM是基于ISAM引擎发展起来的,增加了许多有用的扩展。
    2. MyISAM的表存储成3个文件。文件的名字与表名相同。拓展名为frm存储表的结构、MYD存储数据、MYI存储索引
    3. 支持3种存储格式:包括静态型、动态型和压缩型。
      1. 静态型是MyISAM的默认存储格式,它的字段是固定长度的;
      2. 动态型包含变长字段,记录的长度不是固定的;
      3. 压缩型需要用到myisampack工具,占用的磁盘空间较小。
    4. MyISAM的优势在于占用空间小,处理速度快。缺点是不支持事务的完整性和并发性。
  3. MEMORY存储引擎
    1. MEMORY是MySQL中一类特殊的存储引擎。它使用存储在内存中的内容来创建表,而且数据全部放在内存中
    2. MEMORY存储引擎的表实际对应一个磁盘文件。该文件的文件名与表名相同,类型为frm类型只存储表的结构。而其数据文件,都是存储在内存中。有利于数据的快速处理,提高整个表的效率。但内存出现异常,重启或者关机会影响数据
    3. MEMORY默认使用哈希索引。速度比使用B型树索引快。如果你想用B型树索引,可以在创建索引时指定。
  4. 怎样选择存储引擎
    1. InnoDB:
      1. 支持事务处理,支持外键,支持崩溃修复能力和并发控制。
      2. 如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。
      3. 如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback)。
    2. MyISAM:
      1. 插入数据快,空间和内存使用比较低。
      2. 如果表主要是用于插入新记录和读出记录,那么选择MyISAM能实现处理高效率。
      3. 如果应用的完整性、并发性要求比 较低,也可以使用。
    3. MEMORY:
      1. 所有的数据都在内存中,数据的处理速度快,但是安全性不高。
      2. 如果需要很快的读写速度,对数据的安全性要求较低,可以选择MEMOEY。
      3. 它对表的大小有要求,不能建立太大的表。所以,这类数据库只使用在相对较小的数据库表

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值