mysql存储引擎之间的区别有哪些

64次阅读
没有评论

共计 1932 个字符,预计需要花费 5 分钟才能阅读完成。

这篇文章主要讲解了“mysql 存储引擎之间的区别有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“mysql 存储引擎之间的区别有哪些”吧!

mysql 存储引擎之间的区别:1、MyISAM 不支持事务,不支持行级锁,而 InnoDB 则支持事务和行级锁;2、InnoDB 支持 MVCC,支持外键,而 MyISAM 不支持 MVCC 和外键。

千万级数据并发如何处理?进入学习

本教程操作环境:windows10 系统、mysql8.0.22 版本、Dell G3 电脑。

mysql 存储引擎之间的区别

InnoDB 支持事物,而 MyISAM 不支持事物

InnoDB 支持行级锁,而 MyISAM 支持表级锁

InnoDB 支持 MVCC, 而 MyISAM 不支持

InnoDB 支持外键,而 MyISAM 不支持

mysql 中 myisam,innodb 和 memory 三个存储引擎

1、区别:

1)MyISAM 管理非事务表。提供高速存储和检索,以及全文搜索能力。MyISAM 在所有 MySQL 配置里被支持,是默认的存储引擎,除非配置 MySQL 默认使用另外一个引擎。

2)MEMORY 存储引擎提供“内存中”表。MERGE 存储引擎允许集合将被处理同样的 MyISAM 表作为一个单独的表。就像 MyISAM 一样,MEMORY 和 MERGE 存储引擎处理非事务表,这两个引擎也都被默认包含在 MySQL 中。

注释:MEMORY 存储引擎正式地被确定为 HEAP 引擎。

3)InnoDB 和存储引擎提供事务安全表,默认被包括在所 有 MySQL 5.1 二进制分发版里,可以按照喜好通过配置 MySQL 来允许或禁止任一引擎。

2、功能点简介

1)MyISAM 存储引擎

MyISAM 存储引擎不支持事务,不支持行级锁,只支持并发插入的表锁,主要用于高负载的 select。

myisam 类型的表支持三种不同的存储结构:静态型、动态型、压缩型。

(1)静态型:就是定义的表列的大小是固定(即不含有:xblob、xtext、varchar 等长度可变的数据类型),这样 mysql 就会自动使用静态 myisam 格式。

使用静态格式的表的性能比较高,因为在维护和访问的时候以预定格式存储数据时需要的开销很低。但是这高性能是有空间换来的,因为在定义的时候是固定的,所以不管列中的值有多大,都会以最大值为准,占据了整个空间。

(2)动态型:如果列(即使只有一列)定义为动态的(xblob, xtext, varchar 等数据类型),这时 myisam 就自动使用动态型,虽然动态型的表占用了比静态型表较少的空间,但带来了性能的降低,因为如果某个字段的内容发生改变则其位置很可能需要移动,这样就会导致碎片的产生。随着数据变化的怎多,碎片就会增加,数据访问性能就会相应的降低。

(3)压缩型:如果在这个数据库中创建的是在整个生命周期内只读的表,则这种情况就是用 myisam 的压缩型表来减少空间的占用。

2)MEMORY 存储引擎:

(1)memory 存储引擎相比前面的一些存储引擎,有点不一样,其使用存储在内从中的数据来创建表,而且所有的数据也都存储在内存中。

(2)每个基于 memory 存储引擎的表实际对应一个磁盘文件,该文件的文件名和表名是相同的,类型为.frm。该文件只存储表的结构,而其数据文件,都是存储在内存中,这样有利于对数据的快速处理,提高整个表的处理能力。

(3)memory 存储引擎默认使用哈希(HASH)索引,其速度比使用 B -+Tree 型要快,如果读者希望使用 B 树型,则在创建的时候可以引用。

(4)memory 存储引擎文件数据都存储在内存中,如果 mysqld 进程发生异常,重启或关闭机器这些数据都会消失。所以 memory 存储引擎中的表的生命周期很短,一般只使用一次。

3)innoDB 存储引擎:

(1)innodb 存储引擎该 mysql 表提供了事务,回滚以及系统崩溃修复能力和多版本迸发控制的事务的安全。

(2)innodb 支持自增长列(auto_increment), 自增长列的值不能为空,如果在使用的时候为空的话怎会进行自动存现有的值开始增值,如果有但是比现在的还大,则就保存这个值。

(3)innodb 存储引擎支持外键(foreign key), 外键所在的表称为子表而所依赖的表称为父表。

(4)innodb 存储引擎最重要的是支持事务,以及事务相关联功能。

(5)innodb 存储引擎支持 mvcc 的行级锁。

感谢各位的阅读,以上就是“mysql 存储引擎之间的区别有哪些”的内容了,经过本文的学习后,相信大家对 mysql 存储引擎之间的区别有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-13发表,共计1932字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)