MySQL 数据库存储引擎

一、存储引擎概念

数据库存储引擎是数据库底层软件组件,数据库管理系统--DBMS使用数据引擎进行创建、查询、更新和删除数据操作。不同得存储引擎提供不同得存储机制、索引技巧、锁定水平等功能,使用不同得存储引擎,还可以获得特定的功能。现在许多不同得数据库管理系统都支持多种不同得数据引擎。MySQL得核心就是存储引擎。

二、MySQL中的存储引擎

MySQL提供了许多不同的存储引擎,包括处理事务安全表的引擎和处理非事物安全表的引擎。在MySQL中,不需要再整个服务器中使用同一种存储引擎,根据具体需求为表选择,每个表可以使用不同的存储引擎。在MySQL 5.7支持的存储引擎有:InnoDB、MyISAM、Memory、Merge、Archive、Federated、CSV等。可以使用SHOW ENGINES语句进行查看系统支持的存储引擎类型。

Support列表示某种引擎是否可用,YES表示可以使用,NO表示不可以用。DEFAULT表示该引擎当前为默认存储引擎。

三、常见存储引擎的特点

1、InnoDB存储引擎

InnoDB是事物型数据库的首选引擎,支持事物安全表(ACID),支持行锁定和外键。InnoDB在MySQL 5.5.5版本之后,是默认的存储引擎。

1)InnoDB给MySQL提供了具有提交、回滚和崩溃回复能力的事务安全(ACID兼容)存储引擎。InnoDB锁定。

2)InnoDB是为处理巨大数据量的最大性能设计。它的CPU效率可能是任何其他基于磁盘的关系数据库引擎所不能匹敌的。

3)InnoDB存储引擎完全与MySQL服务器整合,InnDB存储引擎为主内存中缓存数据和索引而维持它自己的缓冲池。

4)InnoDB支持外键完整性约束(FOREIGN KEY)。

5)InnoDB被用的在众多需要高性能的大型数据库站点上。

2、MyISAM

MyISAM基于ISAM的存储引擎,并对其进行扩展。它是在Web、数据存储和其他应用环境下最常使用的存储引擎之一。MyISAM拥有较高的插入、查询速度,但不支持事物。在MyISAM 5.5.5之前版本中,它是默认存储引擎。

1)大文件(达63位文件长度)在支持大文件的文件系统和操作系统上被支持。

2)当把删除、更新及插入操作混合使用的时候,动态尺寸的行产生更少碎片。

3)BLOB和TEXT列可以被索引。

4)NULL值被允许在索引的列中。这个值占每个键的0~1个字节。

6)所有数字键值以高字节优先被存储以允许一个更高的索引压缩。

7)可以把数据文件和索引文件放在不同目录。

8)有VARCHAR的表可以固定或动态记录长度。

使用MyISAM引擎创建数据库,将产生3个文件。文件的名字以表的名字开始,扩展名指出文件类型:frm文件存储表定义,数据文件的扩展名为.MYD(MYData),索引文件的扩展名是.MYI(MYIndex)。

3、MEMORY

MEMORY存储引擎将表中的数据存储到内存中,为查询和引用其他表数据提供快速访问。

1)MENORY表的每个表可以有多达32个索引,每个索引16列,以及500B的最大键长度。

2)MEMORY表使用一个固定的记录长度格式。

3)可以在一个MEMORY表中有非唯一键。

4)MEMORY 不支持BLOB和TEXT列。

5)MEMORY支持AUTO_INCREMENT列和可包含NULL值的列的索引。

6)MEMORY表在所有客户端之间共享(就像其他任何非TEMPORARY表)。

8)MEMORY表内容被存在内存中,内存是MEMORY表和服务器在查询处理时的空闲中创建的内部表共享。

9)当不需要MEMORY表的内容时,要释放被MEMORY表使用的内存,应该执行DELETE FROM或TRUNCATE TABLE,或者删除整个表(使用DROP TABLE)。

四、存储引擎区别

如果要提供提交、回滚和崩溃恢复能力的事物安全(ACID兼容)能力,并要求实现并发控制,InnDB是个很好的选择。如果只是临时存放数据,数据量不大,并且不需要较高的数据安全性,可以选择将数据保存在内存中的MEMORY引擎,MySQL中使用该引擎作为临时表,存放查询的中间结果。如果只有INSERT和SELECT操作,可以选择Archive引擎,Archive存储引擎支持高并发的插入操作,但是本身并不是事物安全的。Archive存储引擎非常适合存储归档数据,如记录日志信息可以使用Archive引擎。使用合适的存储引擎,可以提高整个数据库的性能。

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

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

相关文章

快解析Linux搭建FTP服务器:轻松实现文件传输

在Linux操作系统中,搭建FTP服务器是一种常见且重要的操作。快解析提供了便捷的解决方案,帮助用户快速搭建FTP服务器,实现高效的文件传输和共享。本文将介绍Linux搭建FTP服务器的定义、作用以及其独特的优势,助您了解并利用这一强大…

A - Bone Collector(01背包)

Many years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like to collect varies of bones , such as dog’s , cow’s , also he went to the grave … The bone collector had a big bag with a volume of V ,and along his tr…

超越函数界限:探索JavaScript函数的无限可能

🎬 岸边的风:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 📚 前言 📘 1. 函数的基本概念 📟 1.1 函数的定义和调用 📟 1.2 …

远程仓库上创建一个新的分支 `b` 并将远程分支 `a` 的内容克隆到 `b` 分支上

一、需求: 要在远程仓库上创建一个新的分支 b 并将远程分支 a 的内容克隆到 b 分支上,你可以按照以下步骤进行操作: 二、解决方案: 1. 首先,使用 git clone 命令克隆远程仓库到本地。例如,要克隆一个名为…

9万字企业数字化技术中台、数据中台、工业互联网建设方案WORD

导读:原文《9万字企业数字化技术中台、数据中台、工业互联网建设方案WORD》(获取来源见文尾),本文精选其中精华及架构部分,逻辑清晰、内容完整,为快速形成售前方案提供参考。 目录 1 概述 1.1. 数字化企…

Android Studio实现读取本地相册文件并展示

目录 原文链接效果 代码activity_main.xmlMainActivity 原文链接 效果 代码 activity_main.xml 需要有一个按钮和image来展示图片 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk…

对Lua的理解

在redis和nginx中都潜入了Lua环境用于快速上手开发。但如何理解Lua以及Lua与宿主环境的交互是需要掌握的。 首先是Lua本身&#xff0c;打开5.1的lua版本开始编译后最后生成一个lua的可执行文件&#xff0c;这其实就是一个包含了Lua虚拟机的终端.。所以其实在不管redis也好nginx…

Spring MVC 中的常见注解的用法

目录 认识 Spring MVC什么是 Spring MVCMVC 的定义 Spring MVC 注解的运用1. Spring MVC 的连接RequestMapping 注解 2. 获取参数获取单个参数获取多个参数传递对象表单传参后端参数重命名RequestBody 接收 JSON 对象PathVariable 获取 URL 中的参数上传文件 RequestPart获取 C…

救生员可以戴耳机吗,救生员佩戴蓝牙耳机会影响工作吗?

对于救生员这样一种常驻在水边的职位&#xff0c;戴耳机可以说是比较常见的&#xff0c;佩戴的最主要原因就在于方便进行沟通以及接受指令&#xff0c;以此来确保海边以及海滩等场所的安全&#xff0c;而在这种场景下&#xff0c;对于耳机的考验也是蛮大的&#xff0c;毕竟会出…

计算机视觉之三维重建(二)(摄像机标定)

标定示意图 标定目标 P ′ M P w K [ R T ] P w P^{}MP_wK[R \space T]P_w P′MPw​K[R T]Pw​ 其中 K K K为内参数&#xff0c; [ R T ] [R \space T] [R T]为外参数。该式子需要使用至少六对内外点对进行求解内外参数&#xff08;11个未知参数&#xff09;。 其中 R 3 3 …

js 的正则表达式(二)

1.正则表达式分类&#xff1a; 正则表达式分为普通字符和元字符。 普通字符&#xff1a; 仅能够描述它们本身&#xff0c;这些字符称作普通字符&#xff0c;例如所有的字母和数字。也就是说普通字符只能够匹配字符串中与它们相同的字符。 元字符&#xff1a; 是一些具有特殊含…

NDK 的配置记录~

NDK 的配置 NDK配置 NDK设置在 AS 路径中设置在 local.properties设置在 build.gradle ndk 和 gradle 对应关系gradle的插件和版本对应关系gradle 插件和NDK对应关系 NDK NDK&#xff08;Native Development Kit&#xff09;是一组工具和库&#xff0c;用于在 Android 平台上开…

[国产MCU]-W801开发实例-GPIO输入与中断

GPIO输入与中断 文章目录 GPIO输入与中断1、硬件准备2、软件准备3、驱动实现4、驱动测试W801的GPIO支持软件配置中断,中断触发方式包含:上升沿触发、下降沿触发、高电平触发、低电平触发。本文在前面[ 国产MCU]-W801开发实例-按键与GPIO输入的基础上实现GPIO中断配置。 1、硬…

C++笔记之基类指针动态地指向某一个子类情况列举

C笔记之基类指针动态地指向某一个子类情况列举 code review! 文章目录 C笔记之基类指针动态地指向某一个子类情况列举1.基本的多态示例2.基类中的成员函数可以设置为纯虚函数3.将基本示例修改为使用智能指针并在堆上实例化子类4.父类指针指向基类后&#xff0c;可以去调用只有…

【Android Framework (十二) 】- 智能硬件设备开发

文章目录 前言智能硬件的定义与应用智能硬件产品开发流程智能硬件开发所涉及的技术体系概述关于主板选型主板CPU芯片的选择关于串口通信 总结 前言 针对我过往工作经历&#xff0c;曾在一家智能科技任职Android开发工程师&#xff0c;简单介绍下关于任职期间接触和开发过的一些…

幼儿园托幼机构管理系统 微信小程序

托幼机构管理系统微信小程序从功能、数据流程、可行性、运行环境进行需求分析。对托幼机构管理系统微信小程序的数据库、功能进行了详细设计&#xff0c;分析了主要界面设计和相关组件设计&#xff0c;托幼机构管理系统微信小程序的具体实现进行了介绍。从数据库中获取数据、向…

.netcore windows app启动webserver

创建controller: using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.Json.Serialization; using System.Threading.Tasks;namespace MyWorker.…

Linux 进程的地址空间

一、进程 进程&#xff1a;是一个正在运行的程序 PCB : 即是进程控制块&#xff0c;是进程存在的唯一标志。用来描述进程的属性信息&#xff0c;如进程的pid。 每一个进程都是通过fork复制而来的。 在执行fork之后&#xff0c;先将PCB复制一份给子进程&#xff0c;复制之前先…

美国大模型风向速报(一)为何重视提示工程?LangChain+向量数据库+开源大模型真香...

多家&#xff0c;且独家来自美国的信源同时向“亲爱的数据”表示&#xff0c; 提示工程&#xff08;Prompt Engineering&#xff09;在美国大模型领域备受重视。 读者都要聊&#xff0c; 那就干活。 &#xff08;一&#xff09;开源真香 现阶段&#xff0c;AI开源极客大展身手&…

CloudQuery实战 | 谁说没有一款一体化数据库操作管控云平台了?

文章目录 CloudQuery询盾的地址CloudQuery主页统一入口数据库归纳SQL编辑器权限管控审计中心数据保护数据变更 CloudQuery文档中心了解CloudQuery快速入门安装步骤社区版v2.1.0操作手册1数据查询更新日志 CloudQuery社区和活动 CloudQuery线上实战线上实战主页面展示及数据操作…