数据库存储引擎选择与介绍

开发中,我们经常使用的有MyISAM/innodb/memory等数据库引擎,那么在这些常用的数据库引擎怎么选择呢?

数据库存储引擎选择:

MyISAM引擎:

               如果表对事务的要求不高,同时是以查询和添加为主的,我们考虑使用MyISAM存储引擎

innodb引擎:

               对事务要求高,保存的数据都是重要的数据,我们建议使用INNODB

memory引擎:

               我们数据变化频繁,不需要入库,同时又频繁的查询和修改,我们考虑使用(速度快)


数据库存储引擎介绍:

来自文章:https://blog.csdn.net/zyx1260168395/article/details/105088359

MyIsam:

  • 使用三个文件表示每个表:
  1. 格式文件 — 存储表的结构(mytable.frm)
  2. 数据文件 — 存储表的数据(mytable.MYD)
  3. 索引文件 — 存储表的索引(mytable.MYI)
  • 对表文件中数据行查询提速,有很大帮助。
  • 灵活的AUTO_INCREMENT字段处理
  • 可被转换为压缩、只读表来节省空间
  • 但是MyIsam不支持事务,因此在进行数据行添加,修改,删除时,无法保证数据安全性

INNODB:MySQL数据库的默认引擎;

  • 每个InnoDB表在数据库目录中以.frm格式文件表示
  • InnoDB表空间tablespace被用于存储表的内容
  • 提供一组用来记录事务性活动的日志文件
  • 支持事务处理
  • 提供全ACID兼容
  • 在MySQL服务器崩溃后提供自动恢复
  • 多版本(MVCC)和行级锁定
  • 支持外键及引用的完整性,包括级联更新和删除

MEMORY:其数据存储在内存中,且行的长度固定,这两个特点使得MEMORY存储引擎非常快;

  • 在数据库目录内,每个表均以.frm格式文件表示;
  • 表数据及索引被存储在内存中;
  • 表级锁机制;
  • 不能包含TEXT或BLOB字段;

猜你喜欢

转载自blog.csdn.net/weixin_44519467/article/details/106739366