MySQL ---- 存储引擎

MySQL ---- 存储引擎

一:存储引擎的概念

  • ​ Mysql 中的数据用各种不同的技术存储在文件中,每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能,这些不同的技术以及配套的功能在Mysql 中 称为存储引擎。

  • 存储引擎就是Mysq 将数据存储文件系统中的存储方式或存储格式

  • #### 目前MySQL 常用的两种存储引擎

  • MyISAM (轻量级)

  • InnoDB

二:存储引擎介绍

  • Mysql 存储引擎是Mysql 数据库服务器中的组件,负责为数据库执行实际的数据 I/O 操作

  • 使用特殊存储引擎的主要优点之一在于,仅需提供特殊应用所需的特性,数据库中的系统开销较小,具有有效和更高的数据库性能

  • MySQL系统中,存储引擎处于文件系统之上,在数据保存到数据文件之前会传输到存储引擎,之后按照各个存储引擎的存储格式进行存储。

三:MyISAM 的介绍

1、概念
  • MyISAM 管理非事务表,是ISAM的扩展格式

  • 提供ISAM里所没有的索引和字段管理的大量功能

  • MyISAM使用一种表格锁定的机制,以优化多个并发的读写操作

2、特点
  • 不支持事务
  • 表级锁定形式,数据在更新时锁定整个表
  • 数据库在读写过程中相互阻塞

( 会在数据写入的过程阻塞用户数据的读取 ; 也会在数据读取的过程中阻塞用户的数据写入 )

  • 通过key_buffer_size 来设置缓存索引,提高访问性能,减少磁盘IO的压力

(但缓存只会缓存索引文件,不会缓存数据)

  • MyISAM存储引擎不支持外键约束,只支持全文索引

  • MyISAM 在磁盘上存储的文件

    .frm 文件存储表定义

    数据文件的扩展名为 .MYD ( MYData )

​ 索引文件的扩展名是 .MYI ( MYIndex )

四:InnoDB 的介绍

1、特点
  • 支持4个事务隔离级别;
  • 具有非常高效的缓存特性:能缓存索引,也能缓存数
  • 支持分区、表空间,类似oracle数据库
  • 表与主键以簇的方式存储
  • 行级锁定,但是全表扫描仍然会是表级锁定读写阻塞与事务隔离级别相关
  • 适用于对硬件资源要求还是比较高的场合
2、适用场景
  • 业务需要事务的支持
  • 业务数据更新较为频繁的场景 ,如:论坛,微博等
  • 业务数据一致性要求较高 ,如:银行业务
  • 行级锁定对高并发有很好的适应能力
  • 件设备内存较大,利用Innodb较好的缓存能力来提高内存利用率,减少磁盘IO的压力

五:配置存储引擎

1、查看系统支持的存储引擎
show engines

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GveuemHt-1578475388219)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1578448132872.png)]

2、查看表使用的存储引擎
(1)show  table  status from  库名  where  name=' 表名 ';

(2)show  create  table  表名;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Uqh2J0Xq-1578475388220)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1578447854055.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-trhXw4dm-1578475388220)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1578447775748.png)]

3、修改存储引擎

(1)alter table 修改;

alter table table_name engine=引擎;
示例:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MQg3AMsh-1578475388221)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1578449374811.png)]

(2)进入/etc/my.cnf , 指定存储引擎并重启服务
default-storage-engine=MyISAM   
示例:
[root@localhost mysql]# vim /etc/my.cnf       ‘指定存储引擎为 myisam’

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iNnJTMyj-1578475388222)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1578474174042.png)]

[root@localhost mysql]# systemctl restart mysql       '重启服务'

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z1ThTJ3t-1578475388222)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1578474479116.png)]

(3)create table 创建表时指定存储引擎
create table 表名 (字段) engine=引擎
示例:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x2PP5XzO-1578475388223)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1578475013585.png)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值