MySQL存储引擎MyISAM和InnoDB

2023-11-19

在这里插入图片描述

1.MySQL的程序结构

在这里插入图片描述

2.数据库逻辑结构

1)库 :属性 名称
2)表:字段 (名称,属性,数据类型、约束) 记录 (完整的数据)
3)关系:库–表--记录 (记录 字段)

3.物理结构
1)库:操作系统下的目录
2)表:多个文件组成
Myisam表: (.frm:表定义)
(.myd:数据文件)
(.myi:数据索引)
Innodb表: (
.frm:表定义)
(.ibd:数据和索引)
3)关系–表--段:一个表就是一个段,包含一个或者多个区/簇–区 (1个或者多个连续的页:
最小的I/单元(16KB)

3.MYSQL体系架构

MySAM存储引擎

存储引擎介绍
MyISAM存储引擎中的数据用不同的技术存储在文件(或者内存中),这些以不同技术及以配套相关的功能
在MySQL中被称作储存引擎

MylSAM的特点

1.MyLSAM的介绍
MyLSAM存储引擎是Mysql关系型数据库5.5版本之前默认的存储引擎,的前身是ISAM。ISAM是一个定义明确的
且经历时间考验的数据表格管理方法,被查询次数远大于更新次数。
2.MyISAM的特点
1)不支持事务,需要支持事务的系统不能使用MyISAM作为存储引擎。
2)表级锁定形式,数据在更新时锁定整个表
3)数据库在读写过程中相互阻塞:
在数据写入的过程中阻塞用户对数据的读取
在数据读取的过程中阻塞用户写入数据
4)可以通过key_buffer_size来设置缓存索引,提高访问性能,减少磁盘容量。
5)采用MySAM存储引擎进行数据单独写入或读取,速度较快且占用资源相对较少
6)MyISAM存储不支持外键约束,只支持全文索引。
7)每个MyISAM在磁盘上存储成三个文件。每个文件的名字均已表的名字开始,扩展名文件类型
.frm文件存储表定义
数据文件的扩展名为:MYD
索引文件的扩展名为:MYI

MyISAM使用场景

场景1
1)不需要事务支持
2)单方面读取数据比较多的业务
3)使用读写并发访问相对较低的业务
4)数据修改相对较少的业务
场景2
1)不需要事务支持
2)单方面读取数据比较多的业务
3)已读为主的业务,如www、blog图片信息数据库、用户数据库、商品库等业务。
4)对数据业务一致性要求不是非常高的业务
5)服务器硬件资源相对比较差

InnoDB存储引擎

InnoDB存储引擎,能够支持事务安全表,具有提交、回滚和崩溃恢复的能力。支持行级锁定,
并且可以在SELECT语句中提供一个与Oracle风格类似的非锁定读,也支持FOREIGN KEY强制
InnoDB是为处理巨大数据量时的最大性能而设计的。

InnoDB特点介绍
特点
1)支持事务,支持四个事务隔离级别。(A、C、I、D)
2)行级锁定,但是全表扫描仍然会是表级锁定
3)读写阻塞与事务隔离级别相关
4)具有非常高效的缓存特性,能缓存索引,也能缓存数据
5)表与主键以簇的方式存储
6)支持分区、表空间,类似Oracle数据库
7)支持外键约束,MySQL5.5以前不支持全文索引,5.5版本以后支持。
8)适合对硬件资源要求较高的场合

InnoDB适用的生产场景
1)业务需要事务支持
2)行级锁定对高并发有较好的适应能力,对确保查询是通过索引完成
3)业务数据更新较为频繁的场景,如论坛、微博等
4)业务数据一致性较高,例如银行业务
5)硬件设备内存较大,利用InnoDB较好的缓存能力来提高内存利用率,减少磁盘IO的压力

企业选择存储引擎的依据
1)存储引擎支持的字段和数据类型
所有引擎都支持通用的数据类型,但是不是所有的引擎都支持其他字段类型,如二进制对象
2)锁定类型
不同的存储引擎支持不同级别的锁定
表锁定:MyISAM
行锁定:InnoDB支持
3)索引的支持
建立索引在搜索和恢复数据库中的数据时能够显著提高性能。
不同的存储引擎提供不同的索引的技术。
有些引擎根本不支持索引。
4)事务处理的支持
事务处理功能提供向表中更新和插入信息的可靠性
可根据企业业务要否要支持事务选择存储引擎。

配置合适的存储引擎

1.查看数据数据库可配置的存储引擎类型
使用show engines 可以查看MySQL默认使用的储存引擎
在这里插入图片描述
Engine列表示当前版本的MYSQL所支持的引擎类型
Support列对应引擎是否能使用
Transactions列表示对应引擎是否支持事务;
default表示该引擎为当前默认存储引擎。

2.查看表正在使用的存储引擎
①使用show table status 命令可以查看表正在使用的存储引擎,
格式
show table status from 库名 where name = ‘表名’;
例子:
在这里插入图片描述
②使用 create命令也可以查看表正在使用的存储引擎;
格式
show create table 表名;
在这里插入图片描述
3.配置存储引擎为所选择的类型
当需要选择非默认存储引擎时,修改存储引擎的方法有四种
①使用alter table 命令修改
格式:alter table table_name engine= 引擎
②修改MYSQL的配置文件my.cnf,可以指定default-storage-engine选项设置的默认的存储引擎
[root@localhost ~]# vim /etc/my.cnf
[mysqld] ##在mysqld下
default-storage-engine=MyISAM
[root@localhost ~]# systemctl restart mysqld
在这里插入图片描述

③使用create table创建表时用engine指定存储引擎,会使用存储引擎
在这里插入图片描述
④使用mysq_conver_table_format命令可以批量转换存储引擎 (略)
格式:mysql_convert_table_format --user=root --password=密码 --socket=/temp/mysql.scok --engine=引擎 库名 表名
各命令参数含义

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL存储引擎MyISAM和InnoDB 的相关文章

随机推荐

  • 图像处理岗位面试题搜罗汇总

    传统图像处理部分 图像处理基础知识 彩色图像 灰度图像 二值图像和索引图像区别 彩色图像 RGB图像 灰度图像 0 255像素值 二值图像 0和1 用于掩膜图像 索引图像 在灰度图像中 自定义调色板 自定义输出256种颜色值 常用的图像空间
  • java 泛型 作用与定义

    1 泛型方法的定义和使用 public static void main String args throws ClassNotFoundException String str get 哈士奇 world System out print
  • Mac显示放大镜

    设置快捷键 系统默认是不开启热键的 如果需要设置 操作如下 设置 system preferences gt accessibility 在左侧找到room 进入配置窗口 按如上配置后 按住option键 然后两指向上就可以放大 两指向下就
  • 这座城市引领大模型浪潮!80余个AI大模型,一半集结在这里!

    刚刚结束的2023全球数字经济大会上 人工智能高峰论坛掀起了一股热潮 大型模型的发展和应用成为了会议的亮点 而作为这次盛会的主办方之一 北京市已经成为了这场人工智能革命的领先力量 作为人工智能产业的引领者 北京不负众望 国内已有80余个大型
  • Redis系列(七)Redis主从、哨兵、cluster集群方案解析

    文章目录 Redis主从 主从数据同步 同步 建立连接 完整重同步 全量同步 触发条件 部分重同步 增量同步 复制偏移量 offset 复制积压缓冲区 replication backlog buffer 部分重同步执行过程 命令传播 指令
  • 机器视觉最火应用领域

    1 图像和视频识别 人工神经网络领域最重要的进展之一出自 ImageNet ImageNet收集了 1400 万标签图像并于2009年发布 ImageNet挑战赛要求参赛者设计一个能够跟人类一样对照片进行分类的算法 但一直没有出现获胜者 直
  • Python图像处理 PIL中convert(mode)函数详解

    模式分类 PIL有九种不同模式 1 L P RGB RGBA CMYK YCbCr I F mode 1 代码示例 为二值图像 非黑即白 每个像素用8个bit表示 0表示黑 255表示白 from PIL import Image 读取一张
  • python快乐数字怎么表达_Python中的快乐数字

    在这里 我们将看到如何检测数字n是否为一个快乐数字 因此 快乐数字是一个数字 其中以任何正整数开头的数字均用其数字的平方和代替 该过程将重复进行直到其变为1 否则它将无休止地循环循环 这些数字 当找到1时 将成为快乐数字 假设数字为19 则
  • 类加载机制+双亲委派机制(通俗易懂版)

    1 类加载机制 一个类从加载到使用到卸载一共经过了5个步骤 加载 gt 连接 gt 初始化 其中连接分为验证 准备 解析三个阶段 1 加载 那么什么时候会将 class文件加载到jvm中 就是在你使用这个类的时候 验证 准备 解析 2 验证
  • 【计算机视觉】CLIP:语言-图像表示之间的桥梁

    文章目录 一 前言 二 架构 三 应用 3 1 图像分类 3 2 图像描述 3 3 文本到图像 四 总结 一 前言 最近GPT4的火爆覆盖了一个新闻 midjourney v5发布 DALLE2 midjourney都可以从文本中生成图像
  • 生成随机数

    目录 1 生成随机数sand 函数 2 srand 函数设置生成随机数 3 时间戳 4 如何生成规定位数的随机数呢 1 100 5 猜数字对生成随机数的应用 1 生成随机数sand 函数 这个函数会返回一个从0到RAND MAX的随机整数
  • 线性回归误差项方差的估计

    线性回归误差项方差的估计 摘要 线性回归误差项概念的回顾 残差平方和 residual sum of squares 残差平方和的期望 实验验证 参考文献 摘要 之前在文章线性回归系数的几个性质 中 我们证明了线性回归系数项的几个性质 在这
  • 微信小程序中组件间通信的三种方式

    事先准备 创建一个项目够 修改目录下的app json 在pages中注册页面 同时新增test1组件 也在app json中注册为全局组件 并命名为my test app json 配置 pages pages home home pag
  • JUnit4 initializationError[Runner:JUnit4](0.001s)junit4报错

    junit版本 4 12 如图 原因 缺少 依赖的jar hamcrest core 1 1 jar 添加后
  • vue判断undefined_这几个小技巧,让你书写不一样的Vue!

    前言 最近一直在阅读Vue的源码 发现了几个实战中用得上的小技巧 下面跟大家分享一下 同时也可以阅读我之前写的Vue文章 vue开发中的 骚操作 挖掘隐藏在源码中的Vue技巧 抽丝剥茧般的阅读源码 将 nextTick 拉下神坛 隐藏在源码
  • Spring框架之AOP详解

    Spring AOP 理论 AOP 灵魂三问 AOP的一些术语概念 Spring AOP 底层实现 五种通知形式 实现 如何写切面类 具体举例 理论 AOP 灵魂三问 1 AOP是什么 AOP中文叫做面向切面编程 为Aspect Orien
  • Spring Boot入门&整合常用框架整理丨深度好文

    一 SpringBoot简介 1 1 原有Spring优缺点分析 1 1 1 Spring的优点分析 Spring是Java企业版 Java Enterprise Edition JEE 也称J2EE 的轻量级代替品 无需开发重量级的Ent
  • Altium Designer导出STEP文件

    Tips 由于我使用的是13版本 没有高版本具有的STEP导出功能 故采用以下方式导出PCB 此种方式对元器件模型支持较差 对模型要求较高的同学 建议还是升级DXP版本 首先在PCB文件中 点击 工具 遗留工具 3D显示 在弹出的PCB3D
  • 空谱结合多标准的主动学习用于高光谱分类

    摘要 阶段1首先使用PCA降维 然后使用形态学的腐蚀膨胀方法获取一系列图像 阶段2引入了一种新的基于uncertainty diversity和聚类假设的query function 使用主动学习 介绍 降维解决了维度灾难的问题 解决样本数
  • MySQL存储引擎MyISAM和InnoDB

    1 MySQL的程序结构 2 数据库逻辑结构 1 库 属性 名称 2 表 字段 名称 属性 数据类型 约束 记录 完整的数据 3 关系 库 表 记录 记录 字段 3 物理结构 1 库 操作系统下的目录 2 表 多个文件组成 Myisam表