mysq常见的存储引擎及区别
MySQL是一种关系型数据库管理系统,它支持多种不同的存储引擎来处理和管理数据库中的数据。每个存储引擎都有其独特的特点和适用场景,可以根据实际需要选择使用。
以下是MySQL中常见的几种存储引擎:
innoDB
在MySQL5.5之后,InnoDB成为MySQL默认的存储引擎。它支持事务,锁定机制也更加完善,因此适合于高并发、数据一致性要求高的应用,如交易系统、电子商务平台等。
1.支持事务
2.使用的锁粒度默认为行级锁,可以支持更高的并发;也支持锁。
3.支持外键约束;外键约束其实降低了表的查询速度,增加了表之间的耦合度。
MyISAM
这是MySQL最古老、最简单以及最广泛使用的存储引擎。它是非事务性引擎,适用于读写比例较稳定的应用,如博客系统、新闻等。
1.不提供事务支持
2.只支持表级锁
3.不支持外键
Memory
内存存储引擎,可以将数据存储在内存中,随时读取和更新。速度非常快,但缺点是断电后数据会丢失,不适用于对数据持久性要求高的应用。
数据存储在内存中
Archive
归档存储引擎,用于存储历史数据。它的压缩率非常高,但是查询速度比较慢,适用于不经常查询的数据,如日志文件。
Blackhole
黑洞存储引擎,数据写入黑洞后就被抛弃,没有任何实际作用。用于测试和调试,或者在主从同步环境中使用,可以将数据写入从库并过滤掉不需要的数据。
总结:
- MyISAM管理非事务表,提供高速存储和检索以及全文搜索能力,如果在应用中执行大量的select操作,应该选择MyISAM
- InnoDB用于事务处理,具有ACID事务支持等特性,如果在应用中执行大量的insert和update操作,应该选择InnoDB