开发中,我们经常使用的有MyISAM/innodb/memory等数据库引擎,那么在这些常用的数据库引擎怎么选择呢?
数据库存储引擎选择:
MyISAM引擎:
如果表对事务的要求不高,同时是以查询和添加为主的,我们考虑使用MyISAM存储引擎
innodb引擎:
对事务要求高,保存的数据都是重要的数据,我们建议使用INNODB
memory引擎:
我们数据变化频繁,不需要入库,同时又频繁的查询和修改,我们考虑使用(速度快)
数据库存储引擎介绍:
来自文章:https://blog.csdn.net/zyx1260168395/article/details/105088359
MyIsam:
- 使用三个文件表示每个表:
- 格式文件 — 存储表的结构(mytable.frm)
- 数据文件 — 存储表的数据(mytable.MYD)
- 索引文件 — 存储表的索引(mytable.MYI)
- 对表文件中数据行查询提速,有很大帮助。
- 灵活的AUTO_INCREMENT字段处理
- 可被转换为压缩、只读表来节省空间
- 但是MyIsam不支持事务,因此在进行数据行添加,修改,删除时,无法保证数据安全性
INNODB:MySQL数据库的默认引擎;
- 每个InnoDB表在数据库目录中以.frm格式文件表示
- InnoDB表空间tablespace被用于存储表的内容
- 提供一组用来记录事务性活动的日志文件
- 支持事务处理
- 提供全ACID兼容
- 在MySQL服务器崩溃后提供自动恢复
- 多版本(MVCC)和行级锁定
- 支持外键及引用的完整性,包括级联更新和删除
MEMORY:其数据存储在内存中,且行的长度固定,这两个特点使得MEMORY存储引擎非常快;
- 在数据库目录内,每个表均以.frm格式文件表示;
- 表数据及索引被存储在内存中;
- 表级锁机制;
- 不能包含TEXT或BLOB字段;