【MySQL入门实战3】-存储引擎

news2025/1/11 22:48:09

📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前从事DBA及程序编程
擅长主流数据Oracle、MySQL、PG 运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

文章目录

  • 前言
    • 📣 1.存储引擎
    • 📣 2.InnoDB 存储引擎
    • 📣 3.MyISAM存储引擎
    • 📣 4.Memory存储引擎
    • 📣 5.ARCHIVE 存储引擎
    • 📣 6.总结
    • ✨ 每日一练

前言

MySQL入门实战将持续推出MySQL入门的技能和相关运维经验给大家

📣 1.存储引擎

存储引擎是存储系统的发动机,直接决定了存储系统的性能和功能。存储引擎负责管理数据具体在存储介质上如何存储和检索。不同的存储引擎的优劣势不同,我们需要了解不同存储引擎的优缺点,才能根据需求选择合适的存储引擎来管理数据,从而来提高存储系统的性能,以下将介绍几种常用的存储引擎。
1.MyISAM: 拥有较高的插入,查询速度,但不支持事务
2.InnoDB :5.5版本后Mysql的默认数据库,事务型数据库的首选引擎,支持ACID事务,支持行级锁定
3.Memory :所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在Mysql重新启动时丢失
4.Merge :将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用
Archive :非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的插入速度,但其对查询的支持相对较差
5.Federated: 将不同的Mysql服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用
6.CSV: 逻辑上由逗号分割数据的存储引擎。它会在数据库子目录里为每个数据表创建一个.CSV文件。这是一种普通文本文件,每个数据行占用一个文本行。CSV存储引擎不支持索引。

查询MySQL支持的存储引擎
mysql> show engines;
查看当前的默认存储引擎
mysql> show variables like “default_storage_engine”;

在这里插入图片描述

📣 2.InnoDB 存储引擎

InnoDB是一种兼顾高可靠性和高性能的通用存储引擎,在MySQL5.5之后,InnoDB是默认的 MySQL存储引擎。支持事务处理,支持外键,支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比较高(比如证券),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback)。

在这里插入图片描述

📢📢📢 应用场景

由于其支持事务处理,支持外键,支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback)。

📣 3.MyISAM存储引擎

MyISAM是MySQL早期的默认存储引擎,不支持事务,不支持外键,支持表锁,不支持行锁,占用空间小,访问速度快。插入数据快,空间和内存使用比较低。如果表主要是用于插入新记录和读出记录,那么选择MyISAM能实现处理高效率,一般用于以读写插入为主的应用程序,比如博客系统、新闻门户网站。

📢📢📢 应用场景

1 、不需要事务支持的业务(例如转账就不行)。
2 、一般为读数据比较多的应用,读写都频繁场景不适合,读多或者写多的都适合。
3 、读写并发访问相对较低的业务(纯读纯写高并发也可以)(锁定机制问题)
4 、数据修改相对较少的业务(阻塞问题)。
5 、以读为主的业务,例如:数据库系统表、www, blog ,图片信息数据库,用户数据库,商品库等业务。
6 、对数据一致性要求不是非常高的业务(不支持事务)。
7 、硬件资源比较差的机器可以用 MyiSAM (占用资源少)
8 、使用读写分离的 MySQL 从库可以使用 MyISAM。
小结:单一对数据库的操作都可以使用MyiSAM,所谓单一就是尽量纯读,或纯写 ( insert . update , delete )等.

📣 4.Memory存储引擎

Memory引擎的表数据时存储在内存中的,由于受到硬件问题、或断电问题的影响,只能将这些表作为临时表或缓存使用。如果需要很快的读写速度,对数据的安全性要求较低,可以选择MEMOEY,它对表的大小有要求,不能建立太大的表。

📢📢📢 MEMORY 主要特性有:

1、MEMORY 表的每个表可以多达 32 个索引,每个索引 16 列,以及 500B 的最大键长度。
2、MEMORY 存储引擎引擎执行 HASH 和 BTREE 索引。
3、可以在一个 MEMORY 表中有非唯一键。
4、MEMORY 不支持 BLOB 或 TEXT 列。
5、MEMORY 表使用一个固定的记录长度格式。
6、MEMORY 支持 AUTO_INCREMENT 列和对包含 NULL 值的列索引。
7、MEMORY 表内容被存在内存中,内存是 MEMORY 表和服务器在查询处理时的空闲中创建的内部表共享。
8、MEMORY 表在所有客户端之间共享(就像其他任何非 TEMPORARY 表)。
9、当不再需要 MEMORY 表的内容时,要释放被 MEMORY 表使用的内存,应该执行 DELETE FROM 或 TRUNCATE TABLE,或者删除整个表(使用 DROP TABLE)。

📣 5.ARCHIVE 存储引擎

ARCHIVE 存储引擎非常适合存储大量独立的、作为历史记录的数据。ARCHIVE 提供了压缩功能,拥有高效的插入速度,但是这种引擎不支持索引,所以查询性能较差。

📣 6.总结

在MySQL数据库中可以使用多种存储引擎的表,如果一个表要求比较高的事务处理,可以选择InnoDB。这个数据库中可以将查询要求比较高的表选择MyISAM存储。如果该数据库需要一个用于查询的临时表,可以选择MEMORY存储引擎。

📢📢📢 存储引擎的选择

在这里插入图片描述

✨ 每日一练

关于 MySQL 的存储引擎,下列说法错误的是:()
1.InnoDB 支持事务,有更好的并发能力。
2.MyISAM 不支持事务和外键,结构简单,可以压缩为只读状态。
3.Memory 引擎将数据保存在内存中,重启会丢失数据,读速度快很快,适合作为会话表和缓存表。
4.临时表默认使用 Memory 引擎。
A.4
B.1, 2, 3
C.全部都对
D.2, 3, 4

❤️❤️❤️ 请在评论区留下你的答案,我会做出详细的解答。

在这里插入图片描述

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

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

相关文章

【K8S系列】第十三讲:Ingress详解

目录 序言 1.Ingress基本介绍 1.1 暴露服务问题 1.2 什么是Ingress 1.2 Ingress的核心组件 1.2.1 ingress 1.2.2 ingress-controller 1.2.3 反向代理负载均衡器 2.安装 2.1 下载/修改配置文件 2.2 安装资源 2.3 结果 2.4 项目示例 2.4.1 创建service及deploymen…

博德宝闪耀回归,九牧国际化提速

文|螳螂观察 作者|陈小江 怎样让厨房变得更好? 这是德国百年奢华橱柜品牌博德宝1892年创立之初,就在思考的问题,也是其品牌主张。 130年来,关于该问题的答案,随着博德宝不断创新在时刻刷新,并在全球引领…

Sentinel

Sentinel—高可用流量管理框架/服务容错组件 一.为什么要用Sentinel? 1.微服务架构中当某服务挂掉的时候常见的原因有哪些? 1.异常没处理 比如DB连接失败,文件读取失败等 2.突然的流量激增 比如:用户经常会在京东、淘宝、天猫、拼多多…

java 三级缓存

🏆今日学习目标: 🍀java 三级缓存 ✅创作者:林在闪闪发光 ⏰预计时间:30分钟 🎉个人主页:林在闪闪发光的个人主页 🍁林在闪闪发光的个人社区,欢迎你的加入: 林在闪闪发光…

五问补盲(四)| 好用的补盲激光雷达,得满足哪些条件?

作者 | 爱LiDAR的小飞哥 编辑 | 王博上一期,我们聊了补盲激光雷达上车的重要前提——安全。本期我们来聊聊,满足功能安全、网络安全等领域的关键设计要求之后,补盲激光雷达怎么做到好用,更贴近工程化的表述是「易用」。在之前的文…

利器 | 接口自动化测试框架 RESTAssured 实践(三):对 Response 结果导出

上一篇文章中介绍了rest-assured对返回结果的断言,最后说明了对于Response结果导出的需求。可查看往期文章进行查看。 HTTP/1.1 200 OK Server: nginx/1.12.2 Date: Mon, 13 Jan 2020 02:15:11 GMT Content-Type: application/json;charsetUTF-8 Transfer-Encoding…

产险精算GLM案例

这是对北美产险精算学会CAS北美产险精算师考试教材《广义线性模型实践者指南》的第一章中的实例的结果验证,教材中使用的是纯数学理论推导,这里使用python进行结果验证。 原始数据是一个简单的分组数据: 这个原始数据表需要进行结构化后&…

前端基础(十七)_HTML5新特性

HTML5新特性 1、在网页上绘制图形的canvas元素 原生JavaScriptcanvas实现五子棋游戏_值得一看 鼠标移动淡入淡出Canvas小球效果_TS版本 JS配合canvas实现贪吃蛇小游戏 canvas基础及太极图案例 2、多媒体相关video和audio元素 html5 video 音频标签: audio 标签 在IE8及更早版本…

LVGL学习笔记1 - 准备

目录 1. 下载LVGL源代码 2. 平台 3. 导入到工程 3.1 配置头文件 3.2 src文件夹 4. 移植 4.1 显示接口部分 4.1.1 disp_init 4.1.2 lv_port_disp_init 4.1.3 disp_flush 4.2 IPA部分 4.2.1 lv_draw_gd32_ipa_init 4.2.2 lv_draw_gd32_ipa_blend_fill 4.2.3 lv_dra…

Web API节点操作

1、节点概述 网页中的所有内容都是节点(标签、属性、文本、注释等),在DOM 中,节点使用 node 来表示。HTML DOM 树中的所有节点均可通过 JavaScript 进行访问,所有 HTML 元素(节点)均可被修改&a…

(JavaP1177 )【模板】快速排序

【模板】快速排序 一、题目描述 利用快速排序算法将读入的 NNN 个数从小到大排序后输出。 快速排序是信息学竞赛的必备算法之一。对于快速排序不是很了解的同学可以自行上网查询相关资料,掌握后独立完成。(C 选手请不要试图使用 STL,虽然你…

认识信道(零):天线的极化

认识信道(零):天线的极化 文章目录认识信道(零):天线的极化零.简述一.平面电磁波的传播二.对于field pattern的研究三.对于传播路程的研究四.极化失配五.传播结果六.QuaDRiGa Tutorial分析TXV-RXVTX45-RXV和 TXV-RX45TX45-RX45TX90-RX0,45&am…

[Linux]-Crontab定时任务

[Linux]-Crontab定时任务 森格 | 2022年12月 本文是对Linux中的定时任务Crontab的介绍 一、Crontab是什么 crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中&…

APP登录界面设计:注册框 or 登录框,哪个更合理?

登录和注册过程往往是产品和用户的 First Sight,因此登录注册入口是给用户留下好的第一印象的关键。遵循“所有的设计都应有据可循”的原则,下面是我司设计团队对“登录界面该放注册框还是登录框这个问题”的探讨。 对于一般需要账号体系的产品&#xff…

Moho Pro - Mac 上一款专业的二维动画制作软件,强大的功能让你尽情发挥创意

Moho Pro - Mac 上一款专业的二维动画制作软件,强大的功能让你尽情发挥创意 Moho,以前被称为动画工作室专业版,是最好的质量的2D动画软件之一。这个程序是理想的专业人士寻找一个更有效的替代方法来创建动画,没有繁琐的详细逐帧处…

[ 漏洞挖掘基础篇六 ] 漏洞挖掘之越权漏洞挖掘

🍬 博主介绍 👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…

用Echarts实现SpreadJS引用从属关系可视化

在金融行业,我们经常会有审计审查的需求,对某个计算结果进行审查,但是这个计算结果可能依赖多个单元格,而且会有会有多级依赖的情况,如果让我们的从业人员靠眼睛找,工作量巨大,而且准确性存疑&a…

图书管理系统【Servlet+HTML综合应用】

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:Java案例分…

分享从零开始学习网络设备配置--任务2.7 提高网络稳定性(VRRP)

任务描述 某公司在北京的总部网络承担了连接全国各地分公司网络的任务。总部网络中心采用多台万兆交换机,内部网络按照业务规划有2个部门VLAN。为了增强总部核心网络的稳定性,要求在三层网络设备上配置VRRP备份组,实现网关冗余,为…

BYOL论文精读

文章目录概要背景方法1. 概述2. 参数更新3.目标z_ξ的构建和q_θ的预测结果结论个人看法概要 本篇博客介绍了Bootstrap Your Own Latent (BYOL)方法,这是DeepMind和Imperial London提出的一种自监督学习方法。 BYOL 包含两个架构相同但参数不同的网络。BYOL 不需要…