快速了解MySQL存储引擎

存储引擎

⭐️写在前面

这里是允谦的学习之路
👍如果对你有帮助,给博主一个免费的点赞以示鼓励把QAQ
👋博客主页🎉 允谦的学习小屋
⭐️更多文章👨‍🎓请关注允谦主页📝
🍅文章发布日期:2022.02.23
👋java学习之路!
欢迎各位🔎点赞👍评论收藏⭐️
🎄冲冲冲🎄


存储引擎就是指表的类型。其实存储引擎以前叫做表处理器,后来改名为存储引擎,它的功能就是接收上层传下来的指令,然后对表中的数据进行提取或写入操作。

1、查看存储引擎

查看mysql提供什么存储引擎

show engines;

2、设置系统默认的存储引擎

查看默认的存储引擎

show variables like '%storage_engine%';SELECT @@default_storage_engine;

修改默认的存储引擎

SET DEFAULT_STORAGE_ENGINE=MyISAM;

或修改my.cnf文件:

default_storage_engine=MyISAM
# 重启服务
systemctl restart mysqld.service

接着

CREATE TABLE demo(i INT);

3、设置表的存储引擎

存储引擎是负责对表中的数据进行提取和写入工作的,我们可以为不同的表设置不同的存储引擎,也就是说不同的表可以有不同的物理存储结构,不同的提取和写入方式。

3.1创建表时指定存储引擎

create table 表名(建表语句;) engine = 存储引擎名称;
#举例
create table demo1(id int, lname varchar(15)) engine = MyISAM;

3.2 修改表的存储引擎

alter table 表名 engine = 存储引擎名称;
# 举例
alter table demo1 engine = InnoDB;

4、引擎介绍

4.1 InnoDB引擎:具备外键支持功能的事务存储引擎

4.2 MyISAMy引擎:主要的非事务处理存储引擎

  • MyISAM提供了大量的特性,包括全文索引、压缩哦、空间函数,但MyISAM不支持事务、行级锁、外键,有一个毫无疑问的缺陷是崩溃后无法安全恢复
  • 优势是访问的速度快,对事务完整性没有要求或者以Insert、Select为主的应用
  • 针对数据统计有额外的存储函数,故对count(*)查询速度快

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

4.3 Archive引擎:用于数据存档

  • archive是归档的意思,仅仅支持插入和查询两种功能(行被插入后不能再修改)
  • 拥有很好的压缩机制,使用zlib压缩库,在记录请求的时候实时的进行压缩,经常被用来作为仓库使用
  • archive的存储引擎采用了行级锁。
  • 适合存储大量的独立的作为历史记录的数据。拥有很好的插入速度,但是对查询的支持较差。

4.4 Blackhole引擎:丢弃写操作,读操作会返回空内容

  • Blackhole引擎没有实现任何存储机制,它会丢弃所有插入的数据,不做任何保存
  • 但服务器会记录Blackhole表的日志,所有可以用于复制数据到备库,或者简单的记录到日志。但这种应用方式会碰到很多问题,因此不推荐

4.5 CSV引擎:存储数据时,以逗号分隔各个数据项

  • CSV引擎可以将普通的CSV文件作为MySQL的表来处理,但不支持索引
  • CSV引擎可以作为一种数据交换的机制,非常有用
  • CSV存储的数据直接在操作系统里,用文本编辑器或者excel读取
  • 对于数据的快速导入、导出是有明显的优势的。

4.6 Memory引擎:置于内存的表

概述:

Memory采用的逻辑介质是内存,响应速度快,但是当mysqld守护进程崩溃的时候数据会丢失。另外,要求存储的数据是数据长度不变的格式。

主要特性:

  • Memory同时支持哈希索引和B+树索引
    • 哈希索引相等的比较快,但是对于范围的比较慢
    • 默认使用哈希索引,其速度要比B+树索引快
    • 如果希望使用B+树索引,可以在创建索引时选择使用。
  • Memory表至少比MyISAM表要快一个数量级。
  • Memory表的大小是受到限制的,表的大小主要取决于两个参数,分别是max_rows和max_heap_table_size。其中max_rows可以在创建表时指定;max_heap_table_size的大小默认为16MB,可以按需要进行扩大。
  • 数据文件与索引分开存储

4.7 Federated引擎:访问远程表

4.8 Merge引擎:管理多个MyISAM表构成集合

able_size的大小默认为16MB,可以按需要进行扩大。

  • 数据文件与索引分开存储

4.7 Federated引擎:访问远程表

4.8 Merge引擎:管理多个MyISAM表构成集合

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

允谦呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值