MySQL学习Day18——存储引擎

存储引擎就是指表的类型,它的功能就是接收上层传下来的指令,然后对表中的数据进行提取或写入操作。

一、查看存储引擎

SHOW ENGINES;

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

查看默认的存储引擎

show variables like '%storage_engine%';

修改默认的存储引擎

如果在创建表的语句中没有显式指定表的存储引擎的话,就会默认使用InnoDB作为表的存储引擎。修改默认的存储引擎格式如下:

SET DEFAULT_STORAGE_ENGINE = MyISAM;

 三、设置表的存储引擎

1.创建表时指定存储引擎:

CREATE TABLE 表名(
    建表语句;    
)ENGINE = 存储引擎名称;

 2.修改表的存储引擎:

ALTER TABLE 表名 ENGINE = 存储引擎名称;

四、存储引擎介绍:

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

MySQL从3.23.34a开始就包含InnoDB存储引擎,大于等于5.5之后默认采用InnoDB引擎。InnoDB是MySQL的默认事务引擎,它被设计用来处理大量的短期事务,可以确保事务的完整提交和回滚。除了增加和查询外,还需要更新、删除操作,应该优先选用InnoDB存储引擎。除非有特别的原因需要使用其他的存储引擎,否则应该优先考虑InnoDB引擎。对比MyISAM存储引擎,InnoDB的写效率差一些,并且会占用更多的磁盘空间以保存数据和索引。但是适用于处理巨大的数据量。

2.MyISAM引擎:主要的非事务处理存储引擎

MyISAM提供了大量的特性,包括全文索引,压缩,空间函数等。但是MyISAM不支持事务、行级锁、外键。崩溃后无法安全恢复。但是访问速度快,适用于对事务完整性没有要求或者以SELECT和INSERT应用为主的场景。针对数据统计有额外的常数存储,COUNT(*)效率高。

MyISAM存储引擎和InnoDB存储引擎的对比:

对比项 MyISAM InnoDB
外键 不支持 支持
事务 不支持 支持
行级锁 表锁,即使操作一条记录也会锁住整个表,不适合高并发 行锁,适合高并发
缓存 只缓存索引,不缓存真实数据 缓存索引和真实数据
自带系统表使用 Y N
关注点 节省资源、耗能少、简单业务 并发写、事务、更大的资源
默认安装 Y Y
默认使用 N Y

3.Archive引擎:用于数据存档

仅仅支持插入和查询两种功能,不支持数据修改功能。拥有很好的压缩机制,适合存储大量的独立的作为历史记录的数据,拥有很高的插入速度,但是对查询的支持较差。

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

Blockhole引擎没有实现任何存储机制,它会丢弃所有插入的数据,不做任何保存,但是服务器会记录日志,可以用于赋值数据到备用的数据库,或者简单的记录到日志中。

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

可以将普通的CSV文件作为MySQL的表处理,但不支持索引。

6.Memory引擎:置于内存的表

Memory采用的逻辑介质是内存,对应速度很快。但是当mysqld守护进程崩溃时数据会丢失,另外要求存储的数据是数据长度不变的格式。同时支持哈希索引和B+树索引,并且表的大小是受到限制的。适用于目标数据比较小,而且非常频繁的进行访问。

7.Federated引擎:访问远程表

8.Merge引擎:管理多个MyISAM表构成的集合

9.NDB引擎:MySQL集群专用存储引擎

相关推荐

  1. MySQL_12.Innodb存储引擎参数

    2024-02-20 15:30:02       33 阅读
  2. MySQL入门学习-使用数据库.存储引擎

    2024-02-20 15:30:02       15 阅读
  3. MySQL入门学习.数据库组成.存储引擎

    2024-02-20 15:30:02       10 阅读
  4. MySQL七 | 存储引擎

    2024-02-20 15:30:02       40 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-20 15:30:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-20 15:30:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-20 15:30:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-20 15:30:02       18 阅读

热门阅读

  1. vue3中不支持.sync语法糖的解决方案

    2024-02-20 15:30:02       29 阅读
  2. FlinkSql一个简单的测试程序

    2024-02-20 15:30:02       24 阅读
  3. Python基础笔记11

    2024-02-20 15:30:02       24 阅读
  4. python将pdf转换成图片

    2024-02-20 15:30:02       26 阅读
  5. 【层序遍历】429. N 叉树的层序遍历

    2024-02-20 15:30:02       28 阅读
  6. docker的底层原理

    2024-02-20 15:30:02       27 阅读
  7. Spring源码笔记之SpringIOC--(3)什么是BeanFactory?

    2024-02-20 15:30:02       29 阅读
  8. Android 应用使用情况统计

    2024-02-20 15:30:02       32 阅读
  9. Vue:Vuex模块化编码(非常实用)

    2024-02-20 15:30:02       27 阅读
  10. 嵌出式------001

    2024-02-20 15:30:02       26 阅读
  11. docker 运行 tdengine 并且mybatis 连接

    2024-02-20 15:30:02       27 阅读
  12. python用websockets创建服务端websocket创建客户端

    2024-02-20 15:30:02       28 阅读