MySql存储引擎看这一篇就够了

1.关于存储引擎

关系型数据库,就是用来存储各种数据信息的。根据不同业务场景,比如说:有的表简单,有的表复杂,有的表根本不用来存储任何长期的数据,有的表需要查询非常快。在我们实际的业务开发中,可能需要用到各种各样的表,不同的表也意味着存储不同类型的数据,数据的处理上也就会存在着差异。针对 MySQL 来说,它提供了很多类型的存储引擎来供我们选择,我们可以根据业务需求来选择不同的存储引擎,最大程度的发挥 MySQL 的强大之处。
 

2.MySQL 存储引擎特性

  • 采用的是插拔式的插件方式;
  • 存储引擎是指定在表之上的,即一个库中的每一个表都可以指定选择存储引擎;
  • 不管表采用什么样的存储引擎,都会在数据区,产生对应的一个.frm文件(表结构定义描述文件,下文有介绍。好像是在MySQL 8.0中,.frm 文件已经不存在了,此处以MySQL5.7介绍)
     

3.MySQL 有哪些存储引擎


       我们可以使用命令:show engines;来查看 MySQL 支持哪些存储引擎,如下图所示。我们可以看到 MySQL 默认使用的存储引擎是 InnoDB(下图 MySQL 使用的版本为5.7.28)。

       注意:在MySQL 5.5之前默认的存储引擎是 MyISAM,5.5版本及以后默认存储引擎修改为 InnoDB,具体5.5.x 哪个小版本号不清楚,讨论这也没什么意义)。

       在工作中,经常用到的还是InnoDB和MyISAM这两种,其他存储引擎在指定一些场景下会更加的高效。接下来就从几个方面来对InnoDB、MyISAM、CSV、Archive、Memory 这五种存储引擎做一个基本的了解。

4.常用mysql查询配置命令

show engines;来查看 MySQL 支持哪些存储引擎

 show variables like '%query_cache%';查看mysql是否开启的缓存(对于频繁变更的数据表来说,缓存命中率很低。使用缓存反而降低了读写性能,所以在MySQL8.0以后就移除了缓存模块。) 

 show processlist 命令查看系统所有连接的信息:

 

show variables like ‘datadir’来查看具体存储位置

5.MySQL存储引擎介绍 

基于 MySQL 5.7.28 版本介绍(CSV、Archive、Memory、InnoDB、MyISAM。其它引擎就不过多介绍)

5.1  InnoDB介绍

在 MySQL 5.5 及以后版本后,MySQL 选择使用 InnoDB为默认存储引擎。在创建数据库表时,不指定存储引擎时,使用的就是 InnoDB。如需使用其他存储引擎,可以手动来指定。
 
特点:

  1. InnoDB 支持事务操作;(每一条SQL都默认封装成事务,自动提交,会影响速度,所以最好把多条SQL语言放在begincommit之间,组成一个事务;)
  2. InnoDB 支持外键(对一个包含外键的InnoDB表转为MYISAM会失败);
  3. InnoDB 是聚集索引(聚簇索引);
  4. InnoDB 不保存表的总条数;
  5. InnoDB 5.7版本之前不支持全文检索;
  6. InnoDB 支持表级锁、行级锁,默认为行级锁(InnoDB 实现了标准的行级锁,包括两种:共享锁(简称 s 锁)、排它锁(简称 x 锁)
  7. InnoDB 表必须有主键(如果我们没有明确去指定创建主键索引。它会帮我们隐藏的生成一个 6 byte 的 int 型的索引作为主键索引);
  8. InnoDB 文件存储方式为.frm文件存储表结构,ibd文件存储数据内容。
  9. 名词解释:

  10. 什么是聚集(簇)索引?

      聚簇索引的特点是叶子节点包含了完整的记录行,而非聚簇索引的叶子节点只有索引字段和子节点引用。
  11. 我们日常工作中,根据实际情况自行添加的索引都是辅助索引,辅助索引就是一个为了需找主键索引的二级索引,现在找到主键索引再通过主键索引找数据,InnoDB辅助索引和主键索引之间存在层级关系;MyISAM辅助索引和主键索引则是平级关系;

 5.2 MySAM介绍

MyISAM 作为 MySQL 中 B+Tree 索引的另一种重要体现形式。
 
特点:

  1. MyISAM 是非聚集索引;
  2. MyISAM 有一个变量专门来保存整个表的行数,查询count很快(注意不能加任何 where 条件)
  3. MyISAM 支持全文索引;
  4. MyISAM 可以被压缩后进行查询操作,节省空间容量;
  5. MyISAM 支持表级锁,不支持行级锁;
  6. MyISAM 中主键不是必须的,不支持外键;
  7. MyISAM 文件存储方式为.frm文件存储表结构,.MYD文件存储数据内容,.MYI文件存储索引文件。
     

5.3MySam和InnoDB的区别 

以上

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值