当前位置: 首页 > news >正文

MySQL支持哪些存储引擎

mysql支持九大存储引擎:

1)MYISAM存储引擎(优点:可被转换为压缩、只读表来节省空间。)

           它管理的表具有以下特征:

                  使用三个文件表示每个表

                      格式文件-存储表结构的定义(mytable.frm)

                      数据文件-存储表行的内容(mytable.MYD)

                      索引文件-存储表上索引(mytable.MYI):索引是一本书的目录,缩小扫描范围,提高查询效率的一种机制,可被转换为压缩、只读表来节省空间。

提示:对于一张表来说,只要是主键,或者加有unique约束的字段上会自动创建索引。

2)InooDB存储引擎(优点:非常安全)

这是mysql默认的存储引擎,同时也是一个重量级的存储引擎

InooDB支持事务,支持数据库崩溃后自动恢复机制

最大的特点:支持事务。以保证数据的安全性,效率不是很高,并且也不能压缩,不能转换为只读,不能很好的节省存储空间。

3)MEMORY存储引擎(HEAP引擎)

优点:查询效率是最高的

缺点:不安全,关机后数据消失。因为数据和索引都是在内存当中

使用memory存储引擎的表,其数据存储在内存中,且行的长度固定,这两个特点使memory存储引擎非常快。

4)事务          一个事务就是一个完整的业务逻辑。是一个最小的工作单元,不可再分

转账:A给B转账1000元

A的账户-1000元(update语句),B的账户+1000元(update语句)

这两条语句必须同时成功或者失败,这样才能保证钱是正确的。

只有DML语句才有事务一说:insert增 delete删 update改

只有以上三个语句是对数据库表中的数据进行增删改的,一旦涉及增删改就要考虑安全问题

数据安全第一位

本质上一个事务就是多条DML语句同时成功或者同时失败。

提交事务commit:是一种全部成功的结束。

回滚事务rollback:是一种全部失败的结束。

mysql默认情况下是支持自动提交事务的。

事务包括4个特性:

A:原子性

说明事务是最小的工作单元,不可再分

C:一致性

所有事务要求,在同一个事务当中,所有操作必须同时成功或同时失败,以保证数据的一致性。

I:隔离性

A事务和B事务具有一定的隔离

墙越厚,隔离级别越高。

D:持久性

事务最终结束的一个保障。事务提交,相当于没有保存在硬盘上的数据保存在硬盘上。

事务和事务之间的隔离级别有四个级别:

1)读未提交 read uncommitted(没有提交就读到了):事务A可以读取到事务B未提交的数据。

脏读dirty read:读到了脏数据。对方没有提交的数据我们认为是脏数据

2)读已提交read committed(提交之后才能读到):事务A只能读取到事务B提交之后的数据。

这种隔离级别解决了脏读现象

存在的问题:不可重复读取数据(在事务开启之后,第一次读到的是三条,此时事务还没有结束,第二次再读读到的数据就变成了4条)

这种隔离级别是比较真实的数据,每一次读到的数据是绝对的真实。

是oracle数据库默认的隔离级别

3)可重复读repeatable read(提交之后也读不到,永远读取到的都是刚开启事务时的数据

解决了不可重复读的问题

存在的问题:可能会出现幻读。(每一次读到的数据都是幻象,不够真实)

是mysql默认的隔离级别

4)序列化/串行化serializable(最高隔离级别)

最高隔离级别,效率最低。解决了所有的问题。这种隔离级别表示事务排队,不能并发

类似synchronized线程同步(事务同步)

每一次读取到的数据都是最真实的,并且效率是最低的

相关文章:

MySQL支持哪些存储引擎

mysql支持九大存储引擎: 1)MYISAM存储引擎(优点:可被转换为压缩、只读表来节省空间。) 它管理的表具有以下特征: 使用三个文件表示每个表 格式文件-存储表结构的定义(mytable.frm) 数据文件-存…...

ElementUI结合Vue完成主页的CUD(增删改)表单验证

目录 一、CUD ( 1 ) CU讲述 ( 2 ) 编写 1. CU 2. 删除 二、验证 前端整合代码 : 一、CUD 以下的代码基于我博客中的代码进行续写 : 使用ElementUI结合Vue导航菜单和后台数据分页查询 ( 1 ) CU讲述 在CRUD操作中,CU代表创建(Create&#xff09…...

Flutter开发笔记 —— 语音消息功能实现

前言 最近在开发一款即时通讯(IM)的聊天App,在实现语音消息功能模块后,写下该文章以做记录。 注:本文不提供相关图片资源以及IM聊天中具体实现代码,单论语音功能实现思路 需求分析 比起上来直接贴代码,我们先来逐步…...

冒泡排序和选择排序

目录 一、冒泡排序 1.冒泡排序的原理 2.实现冒泡排序 1.交换函数 2.单躺排序 3.冒泡排序实现 4.测试 5.升级冒泡排序 6.升级版代码 7.升级版测试 二、选择排序 1.选择排序的原理 2.实现选择排序 1.单躺排序 2.选择排序实现 3.测试 ​4.修改 5.测试 一、冒泡排序…...

【深度学习】UNIT-DDPM核心讲解

文章目录 大致介绍:扩散损失:转换损失:循环一致性损失:推理过程:优缺点: 参考文章: https://blog.csdn.net/ssshyeong/article/details/127210086 这篇文章对整个文章 UNIT-DDPM: UNpaired Imag…...

Java 线程的优先级

🙈作者简介:练习时长两年半的Java up主 🙉个人主页:程序员老茶 🙊 ps:点赞👍是免费的,却可以让写博客的作者开兴好久好久😎 📚系列专栏:Java全栈,…...

金融数学方法:牛顿法

目录 1.牛顿法1.1 牛顿法介绍1.2 算法步骤 2. 具体算例3.总结 1.牛顿法 1.1 牛顿法介绍 牛顿法(Newton’s method),也被称为牛顿-拉夫森方法(Newton-Raphson method),是一种用于数值逼近根的迭代方法。它是…...

MongoTemplate | 多条件查询

MongoTemplate查询 Resource private MongoTemplate mongoTemplate;public <T> List<T> getDataList(String param1, Long param2, Class<T> clazz) {// 构建queryQuery query constructQuery(param1, param2);// 查询return mongoTemplate.find(query, cl…...

优秀程序员是怎么思考的?

首发日更公 Z 号&#xff1a;十二又十三 作为一名优秀的程序员&#xff0c;思考是我们工作中最重要的一部分。它不仅能够帮助我们解决问题&#xff0c;还能够提升我们的技术水平和职业发展。那么&#xff0c;优秀程序员是如何思考的呢&#xff1f;本文将为您介绍一个思考框架和…...

【juc】countdownlatch实现游戏进度

目录 一、截图示例二、代码示例 一、截图示例 二、代码示例 package com.learning.countdownlatch;import java.util.Arrays; import java.util.Random; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import java.util.concurr…...

Spring Webflux HttpHandler源码整理

HttpHandler的构造 自动启动配置类&#xff1a;HttpHandlerAutoConfigurationBean public HttpHandler httpHandler(ObjectProvider<WebFluxProperties> propsProvider) {HttpHandler httpHandler WebHttpHandlerBuilder.applicationContext(this.applicationContext).…...

Qt扩展-Advanced-Docking 简介及配置

Advanced-Docking 简介及配置 一、概述二、项目结构三、安装配置四、代码测试 一、概述 Advanced-Docking 是类似QDockWidget 功能的多窗口停靠功能的库。很像visual stdio 的 停靠功能&#xff0c;这个库对于停靠使用的比较完善。很多的软件都使用了这个框架。 项目源地址&a…...

Decorator

Decorator 动机 在某些情况下我们可能会“过度地使用继承来扩展对象的功能”&#xff0c; 由于继承为类型引入的静态特质&#xff0c;使得这种扩展方式缺乏灵活性&#xff1b; 并且随着子类的增多&#xff08;扩展功能的增多&#xff09;&#xff0c;各种子类的组合&#xff…...

分布式文件系统HDFS(林子雨慕课课程)

文章目录 3. 分布式文件系统HDFS3.1 分布式文件系统HDFS简介3.2 HDFS相关概念3.3 HDFS的体系结构3.4 HDFS的存储原理3.5 HDFS数据读写3.5.1 HDFS的读数据过程3.5.2 HDFS的写数据过程 3.6 HDFS编程实战 3. 分布式文件系统HDFS 3.1 分布式文件系统HDFS简介 HDFS就是解决海量数据…...

CSS中:root伪类的使用

在CSS中&#xff0c;:root是一个伪类选择器&#xff0c;它选择的是文档树的根元素。在HTML文档中&#xff0c;这个根元素通常是<html>。:root伪类选择器常常被用于定义全局的CSS变量或者设置全局的CSS样式。 例如&#xff0c;你可以使用:root来定义一个全局的字体大小&a…...

VulnHub JANGOW

提示&#xff08;主机ip分配问题&#xff09; 因为直接在VulnHub上下载的盒子&#xff0c;在VMware上打开&#xff0c;默认是不分配主机的 所以我们可以在VirtualBox上打开 一、信息收集 发现开放了21和80端口&#xff0c;查看一下80端口 80端口&#xff1a; 检查页面后发现…...

OpenMesh 获取网格面片各个顶点

文章目录 一、简介二、实现代码三、实现效果一、简介 OpenMesh中有很多循环器,这里便是其中一种面顶点循环器,以此来获得面片的各个顶点。 二、实现代码 #define _USE_MATH_DEFINES #include <iostream> #include <unordered_map>...

【前端设计模式】之原型模式

原型模式特性 原型模式&#xff08;Prototype Pattern&#xff09;是一种创建型设计模式&#xff0c;它通过克隆现有对象来创建新对象&#xff0c;而不是通过实例化类。原型模式的主要特性包括&#xff1a; 原型对象&#xff1a;原型对象是一个已经存在的对象&#xff0c;它作…...

软件设计原则

设计原则 一、单一原则 1. 如何理解单一职责原则 单一职责原则&#xff08;Single Responsibility Principle&#xff0c;简称SRP&#xff09;&#xff0c;它要求一个类或模块应该只负责一个特定的功能。实现代码的高内聚和低耦合&#xff0c;提高代码的可读性和可维护性。 …...

【面试HOT100】哈希双指针滑动窗口

系列综述&#xff1a; &#x1f49e;目的&#xff1a;本系列是个人整理为了秋招面试的&#xff0c;整理期间苛求每个知识点&#xff0c;平衡理解简易度与深入程度。 &#x1f970;来源&#xff1a;材料主要源于LeetCodeHot100进行的&#xff0c;每个知识点的修正和深入主要参考…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启&#xff0c;数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后&#xff0c;存在与用户组权限相关的问题。具体表现为&#xff0c;Oracle 实例的运行用户&#xff08;oracle&#xff09;和集…...

SkyWalking 10.2.0 SWCK 配置过程

SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外&#xff0c;K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案&#xff0c;全安装在K8S群集中。 具体可参…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...