MySQL进阶--存储引擎

目录

  • 一、简介
  • 二、什么是存储引擎?
  • 三、MySQL中常用的存储引擎
    • 1.InnoDB
    • 2.MyISAM
    • 3.Memory
    • 4.三种存储引擎对比
  • 四、存储引擎的选择
  • PS:

一、简介

本文的内容讲的是MySQL中的存储引擎的相关知识,初步认识MySQL中的存储引擎及各引擎的特点~

二、什么是存储引擎?

先看看MySQL体系结构图
在这里插入图片描述
在这里插入图片描述
存储引擎就是存储数据建立索引更新/查询数据等技术的实现方式。存储引擎是基于表而不是基于库的,所以存储引擎也可以被称为表引擎

默认存储引擎是InnoDB

三、MySQL中常用的存储引擎

可以看出MySQL中的存储引擎有很多种,常用的是以下三个

1.InnoDB

InnoDB 是一种兼顾高可靠性高性能的通用存储引擎,在 MySQL 5.5 之后,InnoDB 是默认的 MySQL 引擎。

特点:
● DML 操作遵循 ACID 模型,支持事务
● 行级锁,提高并发访问性能
● 支持外键约束,保证数据的完整性和正确性

文件:
● xxx.ibd: xxx代表表名,InnoDB 引擎的每张表都会对应这样一个表空间文件,存储该表的表结构(frm、sdi)、数据和索引。

参数:innodb_file_per_table,决定多张表共享一个表空间还是每张表对应一个表空间

innodb_file_per_table是一个InnoDB存储引擎的参数,用于控制表的存储方式。它有以下两个可能的取值:

  • 如果innodb_file_per_table的值为ON,表示每个InnoDB表都有自己的独立表空间文件。也就是说,每个表都有一个单独的.ibd文件用于存储其数据。
  • 如果innodb_file_per_table的值为OFF,表示所有的InnoDB表共享一个表空间文件。也就是说,所有表的数据都会存储在一个共享的.ibdata文件中。

通过执行SHOW VARIABLES LIKE 'innodb_file_per_table';命令,可以获取当前数据库中innodb_file_per_table参数的值。

该命令的返回结果:
在这里插入图片描述
InnoDB 逻辑存储结构:
在这里插入图片描述

2.MyISAM

MyISAM 是 MySQL 早期默认存储引擎。

特点:
● 不支持事务,不支持外键
● 支持表锁,不支持行锁
● 访问速度快

文件:
● xxx.sdi: 存储表结构信息
● xxx.MYD: 存储数据
● xxx.MYI: 存储索引

3.Memory

Memory 引擎的表数据是存储在内存中的,受硬件问题、断电问题的影响,只能将这些表作为临时表或缓存使用。

特点:
● 存放在内存中,速度快
● hash索引(默认)

文件:
● xxx.sdi: 存储表结构信息

4.三种存储引擎对比

在这里插入图片描述

四、存储引擎的选择

在选择存储引擎时,应该根据应用系统的特点选择合适的存储引擎。对于复杂的应用系统,还可以根据实际情况选择多种存储引擎进行组合。

● InnoDB: 如果应用对事物的完整性有比较高的要求,在并发条件下要求数据的一致性,数据操作除了插入和查询之外,还包含很多的更新、删除操作,则 InnoDB 是比较合适的选择
● MyISAM: 如果应用是以读操作和插入操作为主,只有很少的更新和删除操作,并且对事务的完整性、并发性要求不高,那这个存储引擎是非常合适的。
● Memory: 将所有数据保存在内存中,访问速度快,通常用于临时表及缓存。Memory 的缺陷是对表的大小有限制,太大的表无法缓存在内存中,而且无法保障数据的安全性

PS:

感谢您的阅读!如果您觉得本篇文章对您有所帮助,请给予博主一个喔~

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

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

相关文章

将有序链表转换为二叉搜索树

题目: 给定一个单链表的头节点 head ,其中的元素 按升序排序 ,将其转换为高度平衡的二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差不超过 1。 输入: head [-10,-3,0,5,9] 输出: [0,-3…

Python:Spider爬虫工程化入门到进阶(1)创建Scrapy爬虫项目

Python:Spider爬虫工程化入门到进阶系列: Python:Spider爬虫工程化入门到进阶(1)创建Scrapy爬虫项目Python:Spider爬虫工程化入门到进阶(2)使用Spider Admin Pro管理scrapy爬虫项目 本文通过简…

2023牛客暑期多校训练营6 A-Tree (kruskal重构树))

文章目录 题目大意题解参考代码 题目大意 ( 0 ≤ a i ≤ 1 ) , ( 1 ≤ c o s t i ≤ 1 0 9 ) (0\leq a_i\leq 1),(1 \leq cost_i\leq 10^9) (0≤ai​≤1),(1≤costi​≤109) 题解 提供一种新的算法,kruskal重构树。 该算法重新构树,按边权排序每一条边…

W6100-EVB-PICO做DNS Client进行域名解析(四)

前言 在上一章节中我们用W6100-EVB-PICO通过dhcp获取ip地址(网关,子网掩码,dns服务器)等信息,给我们的开发板配置网络信息,成功的接入网络中,那么本章将教大家如何让我们的开发板进行DNS域名解…

uniapp 返回上一页并刷新

如要刷新的是mine页面 在/pages/mine/improveInfo页面修改信息,点击保存后跳转到个人中心(/pages/mine/index)页面并刷新更新数据 点击保存按钮时执行以下代码: wx.switchTab({url: /pages/mine/index }) // 页面重载 let pages …

PDM系统解密:数据管理的利器

在当今数字化时代,数据管理对企业的重要性不言而喻。而PDM系统作为一款强大的数字化工具,正扮演着企业数据管理的利器角色。让我们一同探索PDM系统的功能科普,了解它是如何助力企业高效管理数据,实现卓越发展的。 一、数据中心化存…

VR 变电站事故追忆反演——正泰电力携手图扑

VR(Virtual Reality,虚拟现实)技术作为近年来快速发展的一项新技术,具有广泛的应用前景,支持融合人工智能、机器学习、大数据等技术,实现更加智能化、个性化的应用。在电力能源领域,VR 技术在高性能计算机和专有设备支…

【蓝桥杯备考资料】如何进入国赛?

目录 写在前面注意事项数组、字符串处理BigInteger日期问题DFS 2013年真题Java B组世纪末的星期马虎的算式振兴中华黄金连分数有理数类(填空题)三部排序(填空题)错误票据幸运数字带分数连号区间数 2014年真题蓝桥杯Java B组03猜字…

OpenGL ES 3.0 PBO Pixel Buffer Object 像素缓冲区对象

该原创文章首发于微信公众号:字节流动 PBO 是什么 OpenGL PBO(Pixel Buffer Object),被称为像素缓冲区对象,主要被用于异步像素传输操作。PBO 仅用于执行像素传输,不连接到纹理,且与 FBO (帧缓冲区对象)无关。 OpenGL PBO(像素缓冲区对象) 类似于 VBO(顶点缓冲区…

iMX6ULL驱动开发 | OLED显示屏SPI驱动实现(SH1106,ssd1306)

周日业余时间太无聊,又不喜欢玩游戏,大家的兴趣爱好都是啥?我觉得敲代码也是一种兴趣爱好。正巧手边有一块儿0.96寸的OLED显示屏,一直在吃灰,何不把玩一把?于是说干就干,最后在我的imax6ul的lin…

【WebRTC---源码篇】(二:一)PeerConnection详解

Track的添加 上图是整体流程图 RTCErrorOr<rtc::scoped_refptr<RtpSenderInterface>> PeerConnection::AddTrack(rtc::scoped_refptr<MediaStreamTrackInterface> track,const std::vector<std::string>& stream_ids) {RTC_DCHECK_RUN_ON(signal…

LabVIEW深度相机与三维定位实战(下)

‍‍&#x1f3e1;博客主页&#xff1a; virobotics的CSDN博客&#xff1a;LabVIEW深度学习、人工智能博主 &#x1f384;所属专栏&#xff1a;『LabVIEW深度学习实战』 &#x1f37b;上期文章&#xff1a;『LabVIEW深度相机与三维定位实战&#xff08;上&#xff09;』 &#…