nnoDB和MyISAM是MySQL数据库中常用的两种存储引擎。它们各自具有不同的特性和优势,适用于不同的应用场景。
一、InnoDB引擎:
1、它有如下特性:
1)、支持事务(ACID)
2)、支持外键约束(FOREIGN KEY constraints)
3)、支持行级锁定(row-level locking)
4)、支持故障恢复(Crash Safe Recovery)
5)、支持MVCC(Multi-Version Concurrency Control)
2、优点:
1)、适合DML操作(INSERT, UPDATE, DELETE)密集的在线事务处理(OLTP)应用
2)、支持ACID事务,对数据一致性要求较高的场景
3)、支持外键,保证数据的完整性和引用完整性
3、缺点:
相对MyISAM,读写操作相对较慢
相对MyISAM,占用的存储空间更大
二、MyISAM引擎:
1、它的特性有:
1)、不支持事务
2)、不支持外键
3)、支持表级锁定(table-level locking)
4)、性能优秀,读操作密集型应用效率高
2、优点:
1)、读操作密集型应用,具有更高的读性能
2)、数据加载更快,因为不必进行索引排序
3)、对事务完整性要求不高或不需要事务的场景
3、缺点:
1)、不支持事务和外键
2)、写操作可能慢于InnoDB
3)、在并发写入操作较多时,性能较差
选择存储引擎时,需考虑应用的需求和特性。对于需要事务支持和数据完整性高的应用,推荐使用InnoDB。对于读操作密集型的应用,或者对数据一致性要求不高的应用,可以考虑使用MyISAM。
更详细的理解,大家可参考该文章: