`
AILIKES
  • 浏览: 177837 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mysql存储引擎myisam,innodb和memory的区别

 
阅读更多
1.myisam,innodb和memory的区别如下:

2:InnoDB存储引擎
2.1:InnoDB具有事务,回滚,崩溃修复能力和多版本并发的事务安全
2.2:关于InnoDB的auto_increment列:
2.2.1:InnoDB支持自动增长列,此列不能为空,且值必须唯一
2.2.2:此列必须为主键。插入时,不指定值,默认是自增都的值。指定0或者NULL时,也 是自增后的值。指定合法且不存在的值,则此后的自动从该值开始
2.3:InnoDB中的Foreign Key:
InnoDB支持外键。外键所在表通常称为子表。所依赖表称为父表。且父表中,被子表关联的字段必须为父表的主键。
(外键:可以简单的理解为:当对父表的数据进行更新,删除,添加时,子表的数据也会随之变化。例子很多,此处不举例)
2.4:InnoDB的存储引擎及其优缺点:
InnoDB存储引擎的存储格式有三个文件:
.frm表结构文件,此文件存放表创建时的字段定义等信息。
表的数据文件,存放在innodb_data_home_dir目录下,
表的索引文件,存放在innodb_data_file_path目录下
InnoDB存储引擎具有良好的ACID特性。
InnoDB的缺点:读写效率相对MYISAM比较差。占用的磁盘空间比较大。
2.5:InnoDB的理想使用场合:
高并发,更新操作比较多的表。需要使用事务的表。对自动灾难恢复有要求的表。
3:MYISAM存储引擎:
3.1:MYISAM存储引擎表的存储有三个文件:
.frm文件,存储表的结构
.myd文件,存储表的数据
.myi文件,存储表的索引
3.2:MYISAM存储引擎的存储格式
3.2.1:静态型
表的所有列都是静态的(定长的)。这种情况下,维护和访问预定义格式存储的数据需要的开销很低。但是,需要的空间会更多,原因是,数据在存储的时候,使 用每个列的最大空间来存储,有浪费的空间。当然,磁盘这个都不是问题。
3.2.2:动态型
指标的列中有动态型的列(不定长的)。优点是:使用空间少。缺点是:更新数据时,需要移动数据,产生内部碎片的同时,也降低了维护和访问的效率。
对于这个问题,我们可以:(1)尽量的使用定长字段(2)使用optimize table语句,整理表中的碎片
3.2.3:压缩型:
针对应用程序的声明周期中,只读的数据表,我们可以通过:myisampack工具转化为MYISAM压缩表,以减少使用的磁盘空间
3.4:MYISAM存储引擎的优缺点:
优点:占用空间小,处理速度快(相对InnoDB来说)
确定:不支持事务的完整性和并发性
4:Memory存储引擎
4.1:Memory存储引擎的文件存储形式
Memory存储引擎也会再磁盘上形成一个 .frm的表结构文件,只是表的数据件并不以文件的形式存放在磁盘上。鉴于其数据存放在内存里,因此,访问速度更快。但需 要考虑的是:内存上数据的持久性。
4.2:Memory存储引擎的索引类型
默认的是哈希索引,也支持BTree索引
4.3:Memory存储引擎的数据存储周期
数据存放在内存上,一旦服务器关机,数据将不再存在
4.4:Memory存储引擎的优缺点:
Memory存储引擎不支持变长表列
MySQL4.1.0之前,不支持auto_increment列
4.5:Memory存储引擎的使用场合
速度要求快的,临时数据
丢失以后,对项目整体没有或者负面影响不大的时候。
分享到:
评论

相关推荐

    MySQL数据库:MySQL存储引擎.pptx

    MySQL 5.7支持的存储引擎有:InnoDB、MyISAM、Memory、Merge、Archive、Federated、CSV和BLACKHOLE等。 可以利用语句:show engines; 查看系统所支持的引擎类型。;1.InnoDB存储引擎 InnoDB是事务型数据库的首选引擎...

    MySQL存储引擎简介及MyISAM和InnoDB的区别

    MyISAM:默认的MySQL插件式存储引擎,它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。注意,通过更改 STORAGE_ENGINE 配置变量,能够方便地更改MySQL服务器的默认存储引擎。 InnoDB:用于事务处理应用...

    Mysql InnoDB和MyISAM区别原理解析

    mysql支持很多表类型的表(即存储引擎),如myisam、innodb、memory、archive、example等。每种存储引擎都有自己的优点和缺点,充分的理解每种存储引擎,有助于合理的使用它们。有人认为在同一个数据库中使用多种...

    MySQL课程之MySQL存储引擎入门

    MySQL 支持多种存储引擎,目前的存储引擎有 MyISAM 、 InnoDB 、 BDB 、 Memory 、 Merge 、 Archive 、 Federated 、 BLACKHOLE 、 Cluster/NDB 、 CSV 、 Example 等。其中, InnoDB 、 NDB 、 BDB 支持事务,其他...

    Mysql InnoDB引擎的索引与存储结构详解

    MySQL默认的存储引擎是MyISAM,其他常用的就是InnoDB,另外还有MERGE、MEMORY(HEAP)等。 主要的几个存储引擎 MyISAM管理非事务表,提供高速存储和检索,以及全文搜索能力。 MyISAM是Mysql的默认存储引擎。当create...

    既然Mysql有内存引擎Memory,为什么还需要Redis

    既然Mysql有内存引擎Memory,为什么还需要Redis 随着对于Mysql的了解,我们知道Mysql有三种常用的...Memory引擎是Mysql的内存引擎,在实现上,Memory存储引擎不同于Innodb这种组织索引结构(索引即是数据,即数据存放

    如何选择合适的MySQL存储引擎

    MySQL支持数个存储引擎作为对不同表的类型的处理器。...就像MyISAM一样,MEMORY和MERGE存储引擎处理非事务表,这两个引擎也都被默认包含在MySQL中。 注释:MEMORY存储引擎正式地被确定为HEAP引擎。 ◆ InnoDB和B

    简单了解mysql InnoDB MyISAM相关区别

    mysql支持很多表类型的表(即存储引擎),如myisam、innodb、memory、archive、example等。每种存储引擎都有自己的优点和缺点,充分的理解每种存储引擎,有助于合理的使用它们。有人认为在同一个数据库中使用多种...

    2021年MySQL高级教程视频.rar

    07.MySQL高级存储引擎Memory与Merge特性.avi 08.MySQL高级存储引擎选择原则.avi 09.MySQL高级优化SQL步骤SQL执行频率.avi 10.MySQL高级优化SQL步骤定位低效SQL.avi 11.MySQL高级优化SQL步骤explain指令介绍.avi 12....

    MySQL 学习总结 之 初步了解 InnoDB 存储引擎的架构设计

    主要有 MyISAM、InnoDB、Memory等等。而现在互联网中,基本都是使用 InnoDB 存储引擎,所以接下来我将简单总结自己关于 InnoDB 存储引擎的学习,比较简单的介绍 InnoDB 存储引擎里面的组件。 二、缓冲池 我们现在都...

    Mysql知识详解(内容非常丰富)

    mysql常用引擎包括:MYISAM、Innodb、Memory、MERGE MYISAM:全表锁,拥有较高的执行速度,不支持事务,不支持外键,并发性能差,占用空间相对较小,对事务完整性没有要求,以select、insert为主的应用基本上可以...

    基于MySQL的存储引擎与日志说明(全面讲解)

    1.1 存储引擎的介绍 1.1.1 文件系统存储 文件系统:操作系统组织和存取数据的一种机制。文件系统是一种软件。 类型:ext2 3 4 ,xfs 数据。 不管使用什么文件系统,...InnoDB、MyISAM (最常用的两种) MEMORY、ARCHIVE

    深入MySQL存储引擎比较的详解

    MEMORY存储引擎使用存在内存中的内容来创建表。每个MEMORY表只实际对应一个磁盘文件。MEMORY类型的表访问非常得快,因为它的数据是放在内存中的,并且默认使用HASH索引。但是一旦服务关闭,表中的数据就会丢失掉。 ...

    mysql-installer-community-8.0.24.0.rar

    可插拔的存储引擎架构 多种存储引擎: InnoDB MyISAM NDB (MySQL Cluster) Memory Merge Archive CSV 等等 MySQL 复制可提高应用性能和可扩展性 MySQL 分区有助于增强大型数据库应用的性能和管理 存储过程可提高开发...

    MySQL存储引擎总结

    主要介绍了MySQL存储引擎总结,本文讲解了什么是存储引擎、MyISAM、InnoDB、MEMORY、MERGE等内容,需要的朋友可以参考下

    这些都是常见的MySQL面试题

    其架构模式是插件式的,支持InnoDB、MyISAM、Memory等多个存储引擎。现在最常用的存储引擎是InnoDB,它从MySQL 5.5.5版本开始成为了默认存储引擎(经常用的也是这个)。 SQL执行顺序 2、BinLog、RedoLog、UndoLog ...

    MySQL常用存储引擎功能与用法详解

    MySQL默认的存储引擎是MyISAM(5.7版本中默认为InnoDB)。 配置文件中设置默认存储引擎的参数:default-table-type。 查询当前数据库支持的存储引擎: show engines; show variables like 'have%'; 查

    MySQL中InnoDB存储引擎的锁的基本使用教程

    MyISAM和MEMORY采用表级锁(table-level locking) BDB采用页面锁(page-leve locking)或表级锁,默认为页面锁 InnoDB支持行级锁(row-level locking)和表级锁,默认为行级锁 各种锁特点 表级锁:开销小,加锁快;...

    大厂MySQL面试必考30题及答案

    4. 多存储引擎支持:MySQL支持多种存储引擎,如InnoDB、MyISAM、Memory等,每个引擎都有自己的特点和适用场景。 5. SQL语言支持:MySQL支持标准的SQL语言,以及一些扩展的SQL功能,提供了强大的数据操作和管理能力...

    MySQL-FEDERATED引擎 跨主机联表查询(1)

    MySQL 不同实例间跨库联表查询-(1) MySQL engine 储存引擎 描述 ...InnoDB 具有行锁定和外键的事务...请参见 第16.3节“ MEMORY存储引擎”。 CSV 以逗号分隔值格式存储行的表。请参见 第16.4节“ CSV存储引擎

Global site tag (gtag.js) - Google Analytics