我是靠谱客的博主 轻松仙人掌,最近开发中收集的这篇文章主要介绍MySQL存储引擎的种类及应用前言一、InnoDB二、MyISAM三、MEMORY四、ARCHIVE五、CSV五、对比InnoDB和MyISAM六、总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • 前言
  • 一、InnoDB
  • 二、MyISAM
  • 三、MEMORY
  • 四、ARCHIVE
  • 五、CSV
  • 五、对比InnoDB和MyISAM
  • 六、总结


前言

内容可能没那么准确,如有问题请留言,我再做修正

提示:以下是本篇文章正文内容,下面案例可供参考

一、InnoDB

InnnoDB是MySQL5.5版本之后,默认的内置存储引擎。特性如下:

1. 灾难恢复性较好

2. 支持事物:默认事物隔离级别为可重复读,通过MVCC(并发版本控制)来实现

3. 使用行级锁:可以支持更高的并发

4. 支持外键关联

5. 实现缓冲管理(Buffer Pool):通过缓冲池,将索引和数据缓存起来,加快查询速度

6. InnoDB类型的表,其数据的物理组织形式是聚簇表(Cluster Table),所有数据按照主键索引来组织,数据和索引是在一起的,都位于B+树的叶子节点上

7. 支持热备份:配合一些热备工具,可以支持在线热备份

二、MyISAM

M y ISAM是MySQL5.5版本之钱,默认的内置存储引擎。特性如下:

1. 灾难恢复性不佳:数据所在服务器宕机后,MyISAM数据文件易损坏,而且难恢复

2. 不支持事物

3. 使用表级锁:并发性很差,加锁快,锁冲突较少,所以不太容易发生死锁

4. 不支持外键关联:如果强行增加外键,不会提示错误,只是外键不起作用

5. 实现缓冲管理(Key Cache):只是将索引数据缓存起来

6. 数据储存紧凑,因此可以获得更小的索引和更快的全表扫描性能

7. 支持全文索引:MySQL5.6之后,InnoDB也支持了全文索引,但是MySQL的全文索引基本不会使用,对于全文索引,现在有成熟的解决方案,比如ElasticSearch、Solr、Soginx等

三、MEMORY

MEMORY是将数据存到内存中,和Redis的设计思想类似,主要是为了提高数据的访问数读。特性如下:

1. 使用表级锁

2. 由于数据都在服务器的内存中,所以服务器重启后,所有的数据会丢失

四、ARCHIVE

ARCHIVE适用场景有限,由于其支持压缩,所以主要用来做日志、数据采集表等数据的归档。特性如下:

1. 支持Zlib压缩:数据在插入表之前,会先被压缩

2. 仅支持查询(SELECT)和插入(INSERT)操作:插入的数据只能查询,不能修改和删除

3. 只支持自增键上的索引,不支持其他索引

五、CSV

CSV是将.csv文件作为MySQL的表进行处理,存储格式就是普通的.csv文件,适合做为数据交换的中间表。特性如下:

1. 以 CSV 格式进行数据存储

2. 不支持自增(创建表时,不能设置自增)

3. 不支持索引(由于创建表时主键会自动添加索引,所以也不能设置主键)

4. 不支持空字段(创建表时,不能有空字段)

5. 若修改了 .CSV 文件,则需要 flush tables操作,对数据库的表进行刷新

五、对比InnoDB和MyISAM

对比项InnoDBMyISAM
事务支持不支持
行级锁表级锁
外键支持不支持
fulltext索引不支持支持
CRUD如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表;DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除SELECT,执行查询操作速度快;DELETE,MyISAM执行DELETE是先DROP表,然后重新建表;
COUNT()查询InnoDB 中不保存表的具体行数,也就是说,执行SELECT COUNT(※) FROM table时,InnoDB要扫描一遍整个表来计算有多少行SELECT COUNT(※) FROM table,MyISAM只要简单的读出保存好的行数,注意的是,当COUNT(※)语句包含 where条件时,两种表的操作是一样的;
AUTO_INCREMENTInnodb必须包含auto_increment的索引可以使用auto_increment类型字段建立索引
其他表格难被压缩表格可以被压缩

六、总结

使用场景因地制宜

最后

以上就是轻松仙人掌为你收集整理的MySQL存储引擎的种类及应用前言一、InnoDB二、MyISAM三、MEMORY四、ARCHIVE五、CSV五、对比InnoDB和MyISAM六、总结的全部内容,希望文章能够帮你解决MySQL存储引擎的种类及应用前言一、InnoDB二、MyISAM三、MEMORY四、ARCHIVE五、CSV五、对比InnoDB和MyISAM六、总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部