常见的数据库存储引擎有: ISAM, MYISAM 和 InnoDB ;
根据每个不同的存储引擎提供的不同的核心功能, 以及不同的应用场景等; 一般把核心功能分为 4 类: 支持的字段和数据类型, 锁定类型, 索引, 以及事务处理;
1: 支持的字段和数据类型:
虽然所有的引擎都支持通用的数据类型 (如: 整型, 字符串等), 但是, 并不是所有的引擎都支持其它的字段类型 (如: 二进制, TEXT 文本类型);
2: 锁定类型:
锁定机制主要是为了防止多个处理同时更新同一个数据. 不同的存储引擎支持不同级别的锁: 表锁定, 页锁, 行锁等;
3: 表锁:
开销小, 加锁快, 不会出现死锁. 锁定力度大, 发生锁冲突的概率比较高, 并发度最低. 支持最多的就是表锁定, MYISAM 和 MEMORY 支持表锁. MySQL 的表锁有两种模式, 表共享读锁和表共享写锁. 对于 MYISAM 表的读操作, 不会阻塞其它用户对同一表读的请求, 但是会阻塞对同一表的写请求; 对 MyISAM 表的写操作, 则会阻塞其它用户对同一表的读和写操作;
4: 行锁:
开销大, 加锁慢, 会出现死锁; 锁力度最小, 发生锁冲突的概率最低, 并发也是最高的. InnoDB 表进是行锁定;
5: 索引:
建立索引在搜索和恢复数据库中的数据的时候, 能够显著提高性能; 不同的存储引擎提供不同的制作索引对技术, 有的搜索引擎不支持索引;
6: 事务处理:
事务处理有助于提高向表中更新数据和插入数据期间的可靠性;
ISAM:
ISAM 是一个定义明确且历经时间考验的数据表格管理方法, 它在设计之时就考虑到数 据库被查询的次数要远大于更新的次数. 因此, ISAM 执行读取操作的速度很快, 而且不占 用大量的内存和存储资源. ISAM 的两个主要不足之处在于, 它不支持事务处理, 也不能够 容错: 如果你的硬盘崩溃了, 那么数据文件就无法恢复了.
MyISAM:
MyISAM 管理非事务表, 是 ISAM 的扩展格式. 除了提供 ISAM 里所没有的索引的字段管理等的大量功能, MyISAM 还使用一种表格锁定的机制, 来优化多个并发的读写操作. MyISAM 提供高速存储和检索, 以及全文搜索能力; 在 MYSQL5.5.5 版本及以下的所有 MYSQL 配置里被支持. 也是默认的存储引擎.
InnoDB:
InnoDB 引擎是 MySQL 数据库的另一个重要的存储引擎, 被包含在所有的二进制安装包里面, 和其它的存储引擎相比, InnoDB 引擎的优点是支持兼容 ACID 的事物, 以及参数完整性 (有外键) 等. MySQL5.5.5 以后默认的存储引擎都是 InnoDB 引擎;
来源: https://www.cnblogs.com/laowenBlog/p/8405602.html