数据库学习笔记(7)-----关于MySQL的InnoDB和MyISAM(2019/3/5)

@toc

其实,同为数据库,Oracle和MySQL的细微差别挺多,就不一一列举,此章节就记录一下MySQL和Oracle的最大不同点:数据库引擎。

MySQL默认有两个数据库引擎:InnoDB和MyISAM,而Oracle没有数据库引擎,只有OLAP和OLTP,关于OLAP和OLTP的区别已经在上一章博客记录过(文末附链接),所以目前就讨论一下关于InnoDB和MyISAM的区别:

比较类型 InnoDB MyISAM
事务支持 支持 不支持
存储结构 一个或多个文件或独立表空间 存储为三个文件(.frm表定义,.myd数据文件,.myi索引文件)
存储空间 需要更多的内存和存储 可压缩(三种存储格式,动态表、静态表、压缩表)
可移植性 数据量大比较痛苦 数据文件移植比较方便
备份、恢复 使用Binlog备份,数据量大推荐 可针对单个表
自动增长列 可以建立联合索引(第一列) 可以建立联合索引(不必为第一列)
表锁 支持事务和行级锁 只支持表级锁
全文索引 不支持,可以通过Sphinx支持 支持
主键 没有主键会有默认的六位主键(用户不可见) 允许没有主键
表总行数(使用count) 遍历该表 直接取出数据
CURD操作 大规模insert、update使用 大规模select时使用
外键 支持 不支持
查询效率 count全表慢 count全表快

感觉整理成表格看起来好乱OTZ…

另:
Oracle的OLAP和OLTP:https://blog.csdn.net/weixin_44692483/article/details/88064937

猜你喜欢

转载自blog.csdn.net/weixin_44692483/article/details/88172859