Mysql常用的存储引擎

原创 2018年04月16日 11:06:22

一、概述:

    数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除(增删改查)数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以 获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。MySql的核心就是存储引擎。

二、查看Mysql支持的存储引擎

    SHOW ENGINES;



三、常用的存储引擎介绍

    1. InnoDB存储引擎

        InnoDB是事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键,上图也看到了,InnoDB是默认的MySQL引擎。

    特点:支持事务、外键具有提交、回滚和崩溃恢复能力的事物安全(ACID兼容)存储引擎,行级锁定

    数据存储顺序:   

   Innodb表数据的存储是按照主键的顺序排列每个写入的数据,该特点决定了该表类型写入数据的操作较慢    

    注意: 

        事务: 把许多写入(增、改、删)sql语句捆绑在一起,要么执行、要么不执行事务经常用于与有关的方面

        四个特点: 原子,一致,持久,隔离

        具体操作:

        start transaction;

        许多写入sql语句

      sql语句有问题

    rollback;回滚

               commit;提交


      rollbackcommit只能执行一个

并发性:

    该存储类型的并发性较高,多人同时操作该数据表时,为了使数据表的内容不容易发生变化需要对该表的数据进行'锁定'

 该类型的锁为行级锁,只锁定被操作当期的纪录。


InnoDB不创建目录,使用InnoDB时,该类型 数据、索引 的物理文件位置:

    所有innodb表的数据和索引信息都存储在以下ibdata1文件中。

    注: 可以为每个innodb类型表创建自己的存储空间,默认情况下,每个InnoDB表数据和索引不会创建单独的文件存储


    2.Myisam存储引擎

        MyISAM基于ISAM存储引擎,并对其进行扩展。它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。MyISAM拥有较高的插入、查询速度,但不支持事务。    

① 该类型的数据表  表结构、数据、索引 都有独立的存储文件:

MyISAM数据表:

    *.frm:表结构文件

    *.MYD:表数据文件

    *.MYI:表索引文件

每个myisam数据表的 结构、数据、索引 都有独立的存储文件

特点:独立的存储文件可以单独备份、还原


② 数据存储顺序:Myisam数据表存储是按照自然顺序排列每个写进的数据

特点: 该特点决定了该类型的数据表写入数据的速度较快

③ 并发性:

    该存储类型的数据表的并发性较低。

    原因:该类型锁的级别是——表锁

④ 压缩机制

    如果一个数据表的数据非常多,为了节省存储空间,需要对表进行压缩处理

    压缩工具: myisampack.exe  表名

    重建索引: myisamchk.exe -rq 表名

    解压缩工具: myisamchk.exe --unpack 表名

    注:

        压缩后的数据表不能进行插入,更新,删除(只能读)操作,需要操作时需要先进行解压,写入数据后再压缩 

    压缩的数据表特点: 不能频繁的写入操作,知识内容固定的数据表可以做成压缩处理

        例如: 存储全国地区信息的数据表,收货地址信息的数据表


总结:

    Innodb存储引擎:适合做修改,删除

    Myisam存储引擎:适合做查询,写入


3. Archive(归档存储引擎)

    该引擎只有写入,查询操作,没有修改,删除操作。Archive支持高并发的插入操作,但是本身不是事务安全的;

    比较适合存储「日志」性质的信息


4. Memory

    如果只是临时存放数据,数据量不大,并且不需要较高的数据安全性,可以选择将数据保存在内存中的Memory引擎,MySQL中使用该引擎作为临时表,存放查询的中间结果

    特点:操作数独非常快,但是服务器断电,给存储引擎的数据立即丢失。


使用哪一种引擎需要灵活选择,一个数据库中多个表可以使用不同引擎以满足各种性能和实际需求,使用合适的存储引擎,将会提高整个数据库的性能




mysql常用的存储引擎以及各个使用场景

InnoDB存储引擎InnoDB是事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键,上图也看到了,InnoDB是默认的MySQL引擎。InnoDB主要特性有:1、InnoDB给My...
  • only_musm
  • only_musm
  • 2017年12月12日 17:29
  • 247

MySQL常见的三种存储引擎

原文链接:https://www.cnblogs.com/yuxiuyan/p/6511837.html 简单来说,存储引擎就是指表的类型以及表在计算机上的存储方式。 存储引擎的概念是...
  • thekenofDIS
  • thekenofDIS
  • 2017年11月27日 17:27
  • 176

MySQL中四种常用存储引擎的介绍

MySQL常用的四种引擎的介绍(1):MyISAM存储引擎:不支持事务、也不支持外键,优势是访问速度快,对事务完整性没有 要求或者以select,insert为主的应用基本上可以用这个引擎来创建表支持...
  • qq_27028821
  • qq_27028821
  • 2016年08月21日 16:34
  • 17560

Mysql两种存储引擎的优缺点

MyISAM引擎是一种非事务性的引擎,提供高速存储和检索,以及全文搜索能力,适合数据仓库等查询频繁的应用。MyISAM中,一个table实际保存为三个文件,.frm存储表定义,.MYD存储数据,.MY...
  • naughty610
  • naughty610
  • 2012年03月24日 21:49
  • 15233

MySQL各存储引擎特点及选择建议

原文链接:http://395469372.blog.51cto.com/1150982/1726147 Mysql官方存储引擎比较常见的存储引擎有:Innodb、MyISAM、Me...
  • qq_21071767
  • qq_21071767
  • 2016年03月10日 11:18
  • 618

mysql 的存储引擎种类 以及分类 区别

这里主要介绍几种常用的存储引擎种类  MyISAM  InnoDB  MEMORY  MERGE  TokuDB 1. MyISAM  : 是旧版本mysql的默认引擎,现在默认引擎是Inn...
  • CaiCai_1908
  • CaiCai_1908
  • 2016年11月20日 19:16
  • 1779

谈谈MySQL的存储引擎

MySQL的存储引擎是MySQL体系架构中的重要组成部分,也是MySQL体系结构的核心,插件式的存储引擎更是它区别于其它数据库的重要特征,常见的MySQL存储引擎有InnoDB、MyISAM、Memo...
  • hangxing_2015
  • hangxing_2015
  • 2016年09月19日 15:08
  • 3372

MySQL两种存储引擎

Mysql有两种存储引擎:InnoDB与Myisam   二者之间有六大区别:     MyISAM InnoDB 构成上的区...
  • zhang2531
  • zhang2531
  • 2016年08月26日 20:39
  • 671

MySQL存储引擎的优缺点

MySQL有多种存储引擎,每种存储引擎有各自的优缺点,可以择优选择使用: MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FED...
  • laobai1015
  • laobai1015
  • 2017年05月24日 10:59
  • 826

几种常用mysql存储引擎的特点和适用场景

myisam 特性 建表会生成frm MYD(特有) MYI(特有)三个文件 并发性及锁级别 表级锁并发性差 表损坏修复:不支持事务 可以使用check table tabklename和...
  • rammus7
  • rammus7
  • 2018年02月27日 20:00
  • 63
收藏助手
不良信息举报
您举报文章:Mysql常用的存储引擎
举报原因:
原因补充:

(最多只允许输入30个字)