MySQL的存储引擎:
使用不同的存储引擎,数据文件在磁盘上的存储方式是不一样的;也支持不同的功能。
MySQL支持的存储引擎有很多种,其中InnoDB与MyISAM问得比较多。
一、MyISAM存储引擎
不支持事务,不支持外键约束,索引文件和数据文件分开,这样在内存里可以缓存更多的索引,对查询的性能会更好,适用于少量插入,大量查询的场景。
比较适合使用MyISAM引擎的场景,最经典的是报表系统:
比如大数据的报表系统,给大家画个图聊聊一半都是怎么玩儿的,常见的就是走hadoop生态来搞,hdfs来存储数据,然后基于hive来进行数仓建模,每次hive跑出来的数据都用sqoop从hive中导出到mysql中去。然后基于mysql的在线查询,就接上j2ee写个简单的web系统,每个报表开发一套代码,写sql查数据,组织数据,按照前端要求的格式返回数据,展现出来一个报表。
这种报表系统,是最适合mysql的myisam存储引擎的,不需要事务,就是一次性批量导入,接下来一天之内就是纯查询了。
二、InnoDB存储引擎
现在使用mysql一般都是采用innodb引擎,innodb也是mysql5.5版本之后的默认存储引擎。
InnoDB支持事务,采用聚簇索引,支持外键约束,可以用来做具备高并发、大数据量、高可用等特性的系统架构。
具有增删改查需求的业务系统,因为要用到事务,用InnoDB数据引擎来做就可以了。