美文网首页
MySQL引擎特点

MySQL引擎特点

作者: 李白开水 | 来源:发表于2020-04-05 11:20 被阅读0次

MyISAM存储引擎

表锁
MyISAM表有表级锁。注意不要让它成为瓶颈。

不支持自动数据恢复
如果MySQL服务器崩溃或掉电,就应该在使用之前进行检査和执行可能的修复。如果有大型表,这可能会花几个小时。

不支持事务
MyISAM表不支持事务。实际上, MyISAM甚至不保证单个命令会完成。如果在多行 UPDATE的中途有错误发生,一些行会被更新,而另外一些行则不会。

只有索引被缓存在内存中
MyISAM只缓存了 MySQL进程内部的索引,并保存在键缓冲区。操作系统缓存了表的数据,因此在MySQL5.0中须进行昂贵的系统调用来取得它。

紧密存储
行被紧紧地保存在一起,这样磁盘上的数捃就能得到小的磁盘占用和快速的全表扫描。

Memory存储引擎

表锁
和 My ISAM表一样, Memory表也有表锁。但这通常不是问题,因为 Memory表上的查询都较快。

不支持动态行
Memory表不支持动态(也就是可变长度)行,因此它们根本不支持BLOB和TEXT字段。即使 VARCHAR(5000)也会变成CHAR(5000)—如果大多数值较小,则是巨大的内存浪费。

哈希索引是默认索引类型
和其他存储引擎不同的是,如果不显式地定义,默认的索引类型是哈希类型。

没有索引统计
Memory表不支持索引统计,因此某些复杂的查询有可能会得到不好的执行计划。

重启后丢失数据
Memory表不会把任何数据持久到磁盘,因此,当服务器重启后即使表的定义还在,数据也会丢失。

InnoDB存储引擎

事务性
InnoDB支持事务和四种事务隔离级别。

外键
在 MySQL5.0中, InnoDB是唯一支持外键的存储引擎。另外的存储引擎在 CREATE TABLE命令中可以接受外键,但却不会强制执行。一些第三方引擎,比如 SolidDB,也在存储引擎层次支持它。 MySQL AB计划在未来添加服务器级别的支持。

行级锁
锁设定于行一级,不会向上传递并且也不会阻塞选择—标准选择根本不会设定任何锁,它有很好的并发特性。

多版本
InnoDB使用多版本并发控制,这样在默认情况下可能会选择读取陈旧的数据。事实上,它的MvCC架构增添了很多复杂的和意料之外的行为。如果使用 InnoDB,就应该仔细阅读 InnoDB手册。

按主键聚集
所有的 InnoDB表都是按主键聚集的,可以在架构设计中运用这一点。

所有索引包含主键列
索引按照主键引用行,因此,如果不把主键维持得很短,索引就增长得很大。

优化的缓存
InnoDB把数据和内存缓存在缓冲区池里。它也会自动构建哈希索引以加快行读取。

未压缩的索引
索引没有使用前缀压缩,因此可能会比 MyISAM表的索引大很多。

数据装载缓慢
在 MySQL5.0中, InnoDB不会特别优化数据加载。它一次构建一行的索引,而不是按照排序进行构建这会导致数据加载很慢。

阻塞 AUTO_INCREMENT
在 MySQL5.1之前的版本中, InnoDB使用了表级锁来产生每个新的 AUTO INCREMEN值。

没有缓存的 COUNT()值*
和 MyISAM表或 Memory表不同, InnoDB表不会把表的行数保存在表中,这意味着没有 WHERE子句的COUNT(*)查询不会被优化掉,并且需要全表或索引扫描。

相关文章

  • 5 MySQL 工作原理 存储引擎配置和特点

    MySQL 工作原理 存储引擎配置和特点 [TOC] MySQL 工作原理 MySQL体系结构 MySQL存储引擎...

  • MySQL介绍

    mysql介绍 其他数据库介绍 mysql特点 mysql存储引擎类型及特点 关于mysql单表存储 mysql介...

  • MySQL引擎特点

    MyISAM存储引擎 表锁MyISAM表有表级锁。注意不要让它成为瓶颈。 不支持自动数据恢复如果MySQL服务器崩...

  • MySQL系列(二)----MySQL存储引擎详解

    一、MySQL常用存储引擎及特点 1、InnoDB存储引擎 从MySQL5.5版本之后,MySQL的默认内置存储引...

  • Mysql引擎

    Innodb引擎:MySQL5.5之后的默认存储引擎。 特点: 具有提交(Commit)、回滚(Rollback)...

  • InnoDB介绍

    InnoDB介绍 InnoDB是事务安全的mysql存储引擎,也是mysql的默认存储引擎,特点是行锁设计、支持M...

  • MySQL 存储引擎简介及字符集配置

    一、各种存储引擎的特点   mysql支持多种存储引擎,在处理不通类型应用时,可以选择不同的存储引擎提高应用的效率...

  • MySql常用存储引擎特点

    一、myisam存储引擎特点: 支持 表级锁 不支持 事务、事务回滚、外键 每个表对应3个表文件:表名.frm存储...

  • InnoDB实现原理

    它是MySQL从5.5版本开始的默认的存储引擎,是第一份支持ACID特性的MySQL存储引擎,特点是行锁设计,支持...

  • mysql数据库的学习

    一、myql 数据库特点及优势: 由于MySQL5.5.5以后默认的存储引擎都是InnoDB引擎,所以具备以下优...

网友评论

      本文标题:MySQL引擎特点

      本文链接:https://www.haomeiwen.com/subject/dqzyphtx.html