MySQL支持多种存储引擎,每种引擎都有其优缺点,应该根据应用程序的需求来选择适合的存储引擎。以下是常见的MySQL存储引擎及其优缺点:
InnoDB:InnoDB是MySQL 5.5之后的默认存储引擎。InnoDB支持事务处理、外键约束和崩溃恢复功能,适合于需要高并发读写的应用程序。InnoDB对于更新操作使用行级锁,读操作使用行级锁或表级锁。缺点是相对于其他引擎来说,InnoDB的性能较低,存储空间占用也较大。
注: 支持事务,锁,外键约束。高可靠性和安全性,出现数据丢失或者损坏,可以通过备份数据来恢复数据库。
MyISAM:MyISAM是MySQL 5.5之前的默认存储引擎。MyISAM不支持事务处理和外键约束,但是具有较高的性能和较小的存储空间占用。MyISAM对于读操作使用表级锁,对于更新操作使用表级锁或行级锁(在MySQL 5.6之后)。MyISAM适合于只读或读写比例低的应用程序。
MEMORY:MEMORY引擎将数据存储在内存中,提供了极高的性能,但是会占用大量的内存。MEMORY引擎不支持事务处理和外键约束,并且数据在服务器重新启动时会丢失。MEMORY适合于缓存数据、临时表等需要快速读写的应用程序。
NDB Cluster:NDB Cluster是一个分布式存储引擎,适合于需要高可用性和高性能的应用程序。NDB Cluster支持事务处理和外键约束,并且具有自动分片和负载均衡功能。缺点是相对于其他引擎来说,NDB Cluster较为复杂,需要专业的管理和调优。
除了以上几种存储引擎,MySQL还支持其他一些存储引擎,如CSV、BLACKHOLE、FEDERATED等,根据应用程序的需求选择适合的存储引擎可以提高MySQL的性能和可靠性。
后面学习还会做补充。