关系型数据库mysql(5)存储引擎

目录

一.存储引擎的概念

二. MyISAM  和 InnoDB

2.1MyISAM介绍

2.2MyISAM支持的存储格式

2.2.1静态表(固定长度表)

2.2.2动态表

2.2.3压缩表

2.3场景举例

2.4.InnoDB

2.4.1场景举例

2.4.2企业选择存储引擎依据

 三.查看存储引擎

3.1查看当前数据库支持的存储引擎

3.2查看当前的默认的存储引擎

3.3查看指定表的存储引擎

四.存储引擎的修改

4.1创建表时直接指定

4.2直接修改表结构中的存储引擎 

4.3修改默认的存储引擎


一.存储引擎的概念

  • MySQL中的数据用各种不同的技术存储在文件中,每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力,这些不同的技术以及配套的功能在MySQL中称为存储引擎
  • 存储引擎是MySQL将数据存储在文件系统中的存储方式或者存储格式
  • Mysql数据库中的组件,负责执行实际的数据I/O操作
  • Mysql系统中,存储引擎处于文件系统之上,在数据保存到数据文件之前会传输到存储引擎,之后按照各个存储引擎的存储格式进行存储 
  • MySQL 常用的存储引擎
    • MyISAM
    • InnoDB

MyISAM:Mysql 5.5之前的默认数据库引擎,最为常用。拥有较高的插入,查询速度,但不支持事务;

InnoDB:事务型速记的首选引擎,支持ACID事务,支持行级锁定,MySQL5.5成为默认数据库引擎;

可以通过show engines命令来查看

Engine存储引擎
Support系统是否支持
Comment注释信息
Transactions是否支持事务
XA是否支持XA协议
Savepoints是否支持节点

二. MyISAM  和 InnoDB

2.1MyISAM介绍

  • MyISAM不支持事务,也不支持外键,只支持全文索引,数据文件和索引文件是分开保存的
  • 访问速度快
  • 对事务完整性没有要求

外键:关联两个表,将子表和主表做关联;

对事务完整性没有要求:无论存储什么事务都能接收。

MyISAM在磁盘上存储三个文件

  • .frm文件存储表定义
  • 数据文件的扩展名为.MYD(MYData)
  • 索引文件的扩展名是.MYI(MYIndex)

创建表的时候会自动生成一个frm结尾的文件 

[root@localhost mysql]#pwd
/usr/local/mysql/data/mysql

表级锁定形式,数据在更新时锁定整个表

当一个人在操作数据库操作数据的时候,所有人都不可以操作数据表;

MyISAM是表级锁定,读或写无法同时进行;好处是分开执行时,速度快,资源占用相对较少

数据库在读写过程中相互阻塞

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

数据库在读写过程中相互阻塞,实际上就是串行 

 数据单独写入或读取,速度过程较快且占用资源相对少

2.2MyISAM支持的存储格式

  • 静态表
  • 动态表
  • 压缩表
2.2.1静态表(固定长度表)

静态表是默认的存储格式。静态表中的字段都是非可变字段,这样每个记录都是固定长度的。

  • 优点是存储非常迅速,容易缓存,出现故障容易恢复
  • 缺点是占用的空间通常比动态表多

静态表占用大量的磁盘空间;如果需要存储稳定的话,建议使用静态表

2.2.2动态表

动态表包含可变字段(varchar),记录不是固定长度的。

  • 优点是占用空间较少
  • 缺点是频繁的更新、删除记录会产生碎片,需要定期执行 OPTIMIZE TABLE 语句或 myisamchk -r 命令来改善性能,并且出现故障的时候恢复相对比较困难。

optimize table语句或myisamchk -r命令是清除碎片常用的命令;如果是容量小,建议使用动态表

2.2.3压缩表

压缩表由 myisamchk 工具创建,占据非常小的空间,因为每条记录都是被单独压缩的,所以只有非常小的访问开支。

2.3场景举例

  • 公司业务不需要事务的支持 
  • 单方面读取或写入数据比较多的业务
  • MyISAM存储引擎数据读写都比较频繁场景不适合
  • 使用读写并发访问相对较低的业务
  • 数据修改相对较少的业务
  • 对数据业务一致性要求不是非常高的业务
  • 服务器硬件资源相对比较差

MyISAM适合于单方向的任务场景,同时并发量不高,对于事务要求不高的场景;

适合查询、插入为主的应用场景

日志文件不是事务

2.4.InnoDB

  • 支持事务,支持4个事务隔离级别(数据不一致问题)
  • 读写阻塞与事务隔离级别相关
  • 能非常高效的缓存索引和数据
  • 表与主键以簇的方式存储
  • 支持分区、表空间,类似oracle数据库
  • 支持外键约束,5.5前不支持全文索引,5.5后支持全文索引
  • 对硬件资源要求还是比较高的场合

表空间是Oracle数据库的数据库名字;

对于自增长的字段,InnoDB 中必须包含只有该字段的索引

2.4.1场景举例
  • 业务需要事务的支持
  • 行级锁定对高并发有很好的适应能力,但需确保查询是通过索引来完成
  • 业务数据更新较为频繁的场景(论坛、微博)
  • 业务数据一致性要求较高(银行业务)
  • 硬件设备内存较大,利用InnoDB较好的缓存能力来提高内存利用率,减少磁盘IO的压力
2.4.2企业选择存储引擎依据

需要考虑每个存储引擎提供的核心功能及应用场景

  • 如果读写的并发量大,建议使用InnoDB
  • 如果单独的写入或是插入单独的查询,建议使用MyISAM

支持的字段和数据类型

  • 所有引擎都支持通用的数据类型
  • 但不是所有的引擎都支持其他的字段类型,如二进制对象

锁定类型:不同的存储引擎支持不同级别的锁定

  • 表锁定
  • 行锁定

表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低;
行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高; 

索引的支持

  • 建立索引在搜索和恢复数据库中的数据时能显著提高性能
  • 不同的存储引擎提供不同的制作索引的技术
  • 有些存储引擎根本不支持索引

事务处理的支持

  • 提高在向表中更新和插入信息期间的可靠性    
  • 可根据企业业务是否要支持事务选择存储引擎  innodb

可靠性使用MyISAM;Mysql数据库默认使用InnoDB  

 三.查看存储引擎

3.1查看当前数据库支持的存储引擎

 show engines;

3.2查看当前的默认的存储引擎

show variables like '%storage_engine%';

3.3查看指定表的存储引擎

 show table status from 库名 where name='表名'\G

直接查看数据库下数据表的存储引擎

四.存储引擎的修改

4.1创建表时直接指定

create table 表名(...) engine=引擎名;

4.2直接修改表结构中的存储引擎 

alter table 表名 engine = 引擎名称;

4.3修改默认的存储引擎

通过修改 /etc/my.cnf 配置文件

修改默认的存储引擎后,对已经创建好的表的存储引擎没有影响,影响的是新建的表。

找到mysql安装目录下的模块主配置文件 /etc/my.cnf : 找到default-storage-engine=INNODB 改为目标引擎,default-storage-engine=MYISAM 重启mysqld服务

重启服务

登录MySQL查看

 

在不创建表指定存储引擎的情况下,默认的存储引起为MYISAM

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/779633.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++中的STL简介与string类

目录 STL简介 STL的版本 STL的六大组件 string类 标准库中的string类 string类的常用接口 string类对象对容量的操作 size()函数与length()函数 capacity()函数 capacity的扩容方式 reserve()函数 resize()函数 string类对象的操作 push_back()函数 append()函数 operator()函数…

【01-20】计算机网络基础知识(非常详细)从零基础入门到精通,看完这一篇就够了

【01-20】计算机网络基础知识(非常详细)从零基础入门到精通,看完这一篇就够了 以下是本文参考的资料 欢迎大家查收原版 本版本仅作个人笔记使用1、OSI 的七层模型分别是?各自的功能是什么?2、说一下一次完整的HTTP请求…

记录何凯明在MIT的第一堂课:神经网络发展史

https://www.youtube.com/watch?vZ5qJ9IxSuKo 目录 表征学习 主要特点: 方法和技术: LeNet 全连接层​ 主要特点: 主要特点: 网络结构: AlexNet 主要特点: 网络结构: Sigmoid Re…

经典永不过时 Wordpress模板主题

经得住时间考验的模板,才是经典模板,带得来客户的网站,才叫NB网站。 https://www.jianzhanpress.com/?p2484

第十五届蓝桥杯第三期模拟赛第十题 ← 上楼梯

【问题描述】 小蓝要上一个楼梯,楼梯共有 n 级台阶(即小蓝总共要走 n 级)。小蓝每一步可以走 a 级、b 级或 c 级台阶。 请问小蓝总共有多少种方案能正好走到楼梯顶端?【输入格式】 输入的第一行包含一个整数 n 。 第二行包含三个整…

vulfocus环境搭建(kali搭建)

Vulfocus 是一个漏洞集成平台,将漏洞环境 docker 镜像,放入即可使用,开箱即用。 安装docker环境 个人不建议随意更换apt源,我换了几次遇到很多问题。 apt-get update apt-get upgrade(时间很久) apt-get i…

基于springboot的人事管理系统

人事管理系统 摘 要 人事管理系统理工作是一种繁琐的,务求准确迅速的信息检索工作。随着计算机信息技术的飞速发展,人类进入信息时代,社会的竞争越来越激烈,人事就越显示出其不可或缺性,成为学校一个非常重要的模块。…

防止恶意软件和网络攻击的简单贴士

如今,缺少互联网的生活是难以想象的。然而,互联网的匿名性导致了网络攻击和恶意软件很猖獗。恶意软件会损坏我们的设备、窃取个人数据,并导致金钱损失。因此,保护计算机免受这些威胁显得至关重要。 一、确保操作系统和软件是最新版…

企业数据资产管理的战略价值与实施策略

一、引言 数据资产不仅记录了企业的历史运营情况,更能够揭示市场的未来趋势,为企业的决策提供有力支持。因此,如何有效地管理和利用数据资产,已经成为企业竞争力的重要体现。本文将探讨企业数据资产管理的战略价值与实施策略&…

URL编码:原理、应用与安全性

title: URL编码:原理、应用与安全性 date: 2024/3/29 18:32:42 updated: 2024/3/29 18:32:42 tags: URL编码百分号编码特殊字符处理网络安全应用场景标准演变未来发展 在网络世界中,URL(统一资源定位符)是我们访问网页、发送请求…

设计模式之单例模式精讲

UML图: 静态私有变量(即常量)保存单例对象,防止使用过程中重新赋值,破坏单例。私有化构造方法,防止外部创建新的对象,破坏单例。静态公共getInstance方法,作为唯一获取单例对象的入口…

速通汇编(二)汇编mov、addsub指令

一,mov指令 mov指令的全称是move,从字面上去理解,作用是移动(比较确切的说是复制)数据,mov指令可以有以下几种形式 无论哪种形式,都是把右边的值移动到左边 mov 寄存器,数据&#…

AI 创新领跑者,KIP Protocol 如何理解 Decentralized AI

随着 OpenAI 的 Sora 推动 AI 赛道的热度攀升,AI 领域再次成为科技和投资界的焦点。KIP Protocol 是面向 AI 模型制作者、App 开发者和数据所有者构建的去中心化 Web3 协议层,使数据可在 Web3 中安全地进行交易和货币化。KIP Protocol 由 Animoca Ventur…

Jenkins实现CICD

Jenkins实现CICD JenkinsCI简介环境安装新建任务源码管理构建配置发送邮件配置自动化项目定时构建 JenkinsCD简介配置ssh保证其可以免登录接下来配置github的webhook正式实现自动化打包master主分支的代码将前端三剑客代码文件发送到网站服务器对应的tomcat Jenkins面试题 Jenk…

个人简历主页搭建系列-04:网站初搭建

准备工作差不多了,该开始搭建网站了! 这次我们先把网站搭建部署起来,关于后续主题内容等更换留到后续。 创建源码文件夹 首先通过 hexo 创建本地源码文件夹。因为最终部署的 github 仓库格式为 websiteName.github.io(websiteN…

Gartner发布新兴技术指南:生成式人工智能和深度伪造对身份验证的影响

使用生成式人工智能(GenAI)技术生成的 Deepfakes(深度伪造) 对身份验证的完整性构成了根本威胁。身份验证产品领导者必须了解这一新兴威胁,并采取积极主动的方法来区分和保护其解决方案产品。 主要发现 活体检测技术对于防御深度伪造以及在身…

【每日力扣】332. 重新安排行程与51. N 皇后

🔥 个人主页: 黑洞晓威 😀你不必等到非常厉害,才敢开始,你需要开始,才会变的非常厉害。 332. 重新安排行程 给你一份航线列表 tickets ,其中 tickets[i] [fromi, toi] 表示飞机出发和降落的机场地点。请你…

代码随想录算法训练营 DAY 24 | 回溯理论基础 77.组合 + 剪枝优化

回溯理论 回溯法就是递归函数,纯暴力搜索 解决的问题 组合(无顺序) 1 2 3 4 给出大小为2的所有组合 切割字符串 子集问题 1 2 3 4,子集有1 2 3 4,12,13,14,…123 124… 排列(有顺序) 棋盘…

wpf 自定义命令

自定义命令 MyCommand.cs public class MyCommand : ICommand {private readonly Action<Object> execAction;private readonly Func<Object,bool> changedFunc;public event EventHandler? CanExecuteChanged;public MyCommand(Action<object> execAction…

尾盘拉升超8个点,速腾聚创交出来一份怎样的超预期答卷?

“如果说2024年是智驾加速渗透&#xff0c;L3级智能驾驶陆续落地的一年&#xff0c;那么激光雷达将是这股潮流中不可缺失的那一份。” 2024年开年&#xff0c;速腾聚创以相当“闪亮的姿态”成为“港股2024年首只IPO上市成功”的企业。 然而&#xff0c;其上市之后的市场表现却…