MySQL学习笔记——CSDN学习记录九:数据库存储引擎

news2024/9/20 12:34:28

存储引擎

一、MySQL 体系结构:

二、存储引擎概念:

        MySQL 中的数据用于各种不同的技术存储在文件或内存。这些技术的每一个都使用不同的存储机制、索引技巧、锁定水平,最终提供不同的功能。通过选择不同的技术,能够得到更好的数据处理能力,从而改善应用的整体表现。

        这些不同的技术中以及相关功能在 MySQL 中称作存储引擎。存储引擎是实现如何存储数据、如何为存储的数据建立索引以及如何更新、查询数据等技术的方法。由于关系型数据库中的数据是以表的形式存储,所以存储引擎也称为表类型(即存储和操作此表的类型)。

        总结:

                (1) 数据库存储引擎是数据库底层软件组织,数据库管理系统 (DBMS) 使用数据引擎进行创建、查询、更新和删除数据。

                (2)不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能。

                        现在许多不同的数据库管理系统都支持多种不同的数据引擎。

                        MySQL 的核心就是存储引擎。

                (3) 用户可根据不同需求为数据表选择不同的存储引擎(表类型)。

三、创建表时指定存储引擎的语法格式:

                        CREATE  TABLE  表名(

                                        字段,

                                        ……

                                        )ENGINE=存储引擎;

四、常用的三种存储引擎:

        1. InnoDB 存储引擎:

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

                (1) 特点:

                        ① 支持自动增长列 AUTO_INCREMENT。自动增长列的值不能为空,且值必须唯一。MySQL 中规定自增列必须为主键。

                        ② 支持外键,保证数据的完整性和正确性。

                                外键所在表为子表,外键所依赖表为父表。父表中被子表外键关联的字段必须为主键。

                        ③ DML 操作遵循 ACID 模型,支持事务。

                        ④ 行级锁,提高并发访问性能。

                (2) 表空间文件:

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

                (3) 逻辑存储结构:

                (4) 优劣:

                        优:提供良好的事务管理、崩溃修复能力和并发控制。

                        劣:读写效率稍差,占用的数据空间相对较大。

        2. MyISAM 存储引擎:

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

                (1) 特点:

                        ① 不支持事务,不支持外键。

                        ② 支持表锁,不支持行锁。

                        ③ 占用空间小,访问速度快。

                (2) MyISAM 存储引擎的文件类型:

                        ① xxx.sdi:存储表结构信息。

                        ② xxx.MYD:存储数据。

                        ③ xxx.MYI:存储索引。

        3. Memory 存储引擎:

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

                (1) 特点:

                        ① 内存存放。

                        ② hash 索引(默认)。

                (2) 文件:

                        xxx.sdi:存储表结构信息。

        4. 上述三种引擎的比较:

五、存储引擎选择:

        1. InnoDB:MySQL 的默认存储引擎,支持事务、外键。如果应用对事务的完整性有比较高的要求,在并发的条件下要求数据的一致性,数据操作除了插入和查询之外,还包含很多的更新、删除操作,InnoDB 存储是比较合适的选择。

        2. MyISAM:如果应用是以读操作和插入操作为主,只有很少的更新和删除操作,并且对事务的完整性、并发性要求不是很高,选择 MyISAM 引擎是非常合适的。

        3. Memory:将所有数据保存在内存中,访问速度快,通常用于临时表及缓存。Memory 的缺陷就是对表的大小有限制,太大的表无法缓存在内存中,而且无法保障数据的安全性。

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

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

相关文章

03- SVC 支持向量机做人脸识别 (项目三)

数据集描述: sklearn的lfw_people函数在线下载55个外国人图片文件夹数据集来精确实现人脸识别并提取人脸特征向量数据集地址: sklearn.datasets.fetch_lfw_people — scikit-learn 1.2.1 documentationPCA降维: pca PCA(n_components0.9) 数据拆分: X_train, X_test, y_tra…

正大期货本周财经大事抢先看

美国1月CPI、Fed 等央行官员谈话 美国1月超强劲的非农就业人口,让投资人开始上修对这波升息循环利率顶点的预测,也使本周二 (14 日) 的美国 1月 CPI 格外受关注。 介绍正大国际期货主账户对比国内期货的优势 ​第一点:权限都在主账户 例如…

B站基于缓存优化 PRESTO 集群查询性能

导读:本次分享主题为 B 站 Presto 集群查询性能的优化,首先会简单介绍 Presto以及 B 站内部 Presto 集群的架构。接下来讲解针对 Presto 做的改造,主要是 Presto 搭配 Alluxio 和 Presto 搭配 Alluxio local cache 的使用。最后会对后续计划开…

C++类基础(十三)

类的继承 ● 通过类的继承(派生)来引入“是一个”的关系( 17.2 — Basic inheritance in C) – 通常采用 public 继承( struct V.S. class ) – 注意:继承部分不是类的声明 – 使用基类的指针…

StarRocks技术内幕 | 资源隔离原理解析

资源隔离一直是 StarRocks 用户讨论较多的话题,对于资源隔离的诉求,主要集中在四点:1. 很多用户关注资源的隔离性,期望当有核心业务的查询运行时,可以限制其他类型任务的使用资源,进而保障核心业务的响应时…

SpringMVC(1)

Web项目:基于HTTP协议,当一个用户从浏览器上面输入URL地址之后,URL能够和我们的程序映射起来,可以让用户的请求触达到后端程序里面,并且根据程序的处理,把结果返回浏览器; Spring MVC要进行学习的内容: 1)连…

三分钟学习 Gitee OpenAPI

文章目录1 什么是 Gitee Open API ?2 如何操作Open API ?2.1 申请私人令牌2.2 发起网络请求3 其他Git Open API3.1 Github Open API3.2 Gitlab OpenAPI1 什么是 Gitee Open API ? 简单说就是 网络请求 Open API 让我们可以通过网络请求的方式对 Git仓库的 分支&#xff0…

LinkedList与链表(数据结构系列5)

目录 前言: 1.链表的概念以及分类 1.1链表的概念 1.2分类 1.2.1单向和双向 1.2.2循环和非循环 1.2.3带头和不带头 2.无头单链表的模拟实现 3.双向链表的模拟实现 4.LinkedList的简单介绍 5.LinkedList的遍历 5.1直接打印 5.2for-each遍历 5.3迭代器遍历…

【Vercel】教你部署imsyy/home个人主页

本篇博客教你如何部署一个自己的个人主页 项目地址:https://github.com/imsyy/home 本文首发于 慕雪的寒舍 1.fork仓库vercel部署 首先我们点击fork,将仓库复刻到自己的账户 随后进入vercel,点击dashboard-add new-project 选择你复刻的仓库…

我的Android开发【分代收集算法】

为什么要采用分代收集算法? 分代的垃圾回收策略,是基于这样⼀个事实:不同的对象的⽣命周期是不⼀样的。因此,不同⽣命周期的对象可以采取不同的收集⽅式,以便提⾼回收效率。在 Java 程序运⾏的过程中,会产…

【大数据基础】vmware+ununtu安装详细过程

环境配置 1. 虚拟机VMware下载与安装 首先安装vmware workstation 密钥直接利用科技生成。 检查vmware是否成功安装 2. VMware安装Ubuntu18.04 LTS 在清华源镜像站找到合适版本的ubuntu 联网安装需要一些时间,大致在一到两个小…

NetSuite Balancing Segment平衡段

春节假期偷了一段时间懒,现在开始工作了。今朝谈一个偏门题目,于未知领域再下一城。说这个题目偏,就要讲讲渊源。话说在Oracle的EBS和Fusion产品中的COA领域有个功能叫做“Balancing Segment”。 问了几位Oracle老炮,也说是对第二…

RDS-MySQL算不算国产数据库及其风险问题

作者:IT圈黎俊杰 笔者在参与国内某大型央企信创替代研究工作中,遇到从各方面传来的“云平台上的RDS就是国产数据库,使用RDS替代原数据库,也是信创替代”的说法,当说的人多了,产生的误导性强了以后&#xff…

Qt OpenGL(三十八)——Qt OpenGL 核心模式-绘制彩色的点

提示:本系列文章的索引目录在下面文章的链接里(点击下面可以跳转查看): Qt OpenGL 核心模式版本文章目录 Qt OpenGL(三十八)——Qt OpenGL 核心模式-绘制彩色的点 一、场景 续接上一篇文章(动态刷新点云),动态刷新点云数据,如下图: 如果,我们需要的点的绘制是彩…

数据挖掘学习笔记——GEO数据库:芯片数据分析

数据挖掘 数据挖掘学习笔记——GEO数据库:芯片数据分析 文章目录数据挖掘一、芯片基础知识1.1、背景二、GEO数据库概述2.1、基础简介2.2、检索页面展示三、GSE项目的三种下载方式3.1、主页下载原始数据3.2、主页下载表达矩阵3.3、GEOquery包下载表达量四、基因名与…

AI与制造的联合与突破,捷配是作何选择的?

最近的chatGPT可谓是火遍全球,人工智能与AI的话题再一次被推上了各大平台热搜,各个行业、各路专家也大谈对各个行业的影响。那么PCB制造业中,AI意味着什么?某一天,在生产工厂中,看着每一条生产链条持续运行…

一文教你学会添加通达信外挂接口(财经外挂)

今天重点讲解怎样在您的股票交易软件里增加财经类外挂,对您的股票交易软件进行便利化的设置与完善,把您想看的内容统统加紧你的交易软件,方便以后的研究操作。 具体流程是这样的:打开您要添加的财经网站官网,复制官网…

第四章 模块和组件、模块化和组件化的理解

1、模块 理解:向外提供特定功能的js程序,一般就是一个js文件为什么要拆成模块:随着业务逻辑增加,代码越来越多且复杂作用:复用js,简化js的编写,提高js运行效率 我们以一段代码举例说明拆分模块…

C#WPF基础教程3——资源字典、样式、

资源字典 创建资源字典 创建合并资源属性 资源字典的使用 引用类库中的资源字典 在类库中创建资源字典 类库中资源字典的使用 样式 添加样式 使用静态的方式为按钮添加样式 设置背景样式,不能直接使用value 关联事件处理程序 UI层创建事件关联程序 model端创建…

每日学术速递2.13

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV、cs.AI、cs.CL 1.Deep Intra-Image Contrastive Learning for Weakly Supervised One-Step Person Search 标题:深度图像内对比学习用于弱监督的单步人物搜索 作者&#…