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)…...
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 号:十二又十三 作为一名优秀的程序员,思考是我们工作中最重要的一部分。它不仅能够帮助我们解决问题,还能够提升我们的技术水平和职业发展。那么,优秀程序员是如何思考的呢?本文将为您介绍一个思考框架和…...
【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的构造 自动启动配置类:HttpHandlerAutoConfigurationBean public HttpHandler httpHandler(ObjectProvider<WebFluxProperties> propsProvider) {HttpHandler httpHandler WebHttpHandlerBuilder.applicationContext(this.applicationContext).…...
Qt扩展-Advanced-Docking 简介及配置
Advanced-Docking 简介及配置 一、概述二、项目结构三、安装配置四、代码测试 一、概述 Advanced-Docking 是类似QDockWidget 功能的多窗口停靠功能的库。很像visual stdio 的 停靠功能,这个库对于停靠使用的比较完善。很多的软件都使用了这个框架。 项目源地址&a…...
Decorator
Decorator 动机 在某些情况下我们可能会“过度地使用继承来扩展对象的功能”, 由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性; 并且随着子类的增多(扩展功能的增多),各种子类的组合ÿ…...
分布式文件系统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中,:root是一个伪类选择器,它选择的是文档树的根元素。在HTML文档中,这个根元素通常是<html>。:root伪类选择器常常被用于定义全局的CSS变量或者设置全局的CSS样式。 例如,你可以使用:root来定义一个全局的字体大小&a…...
VulnHub JANGOW
提示(主机ip分配问题) 因为直接在VulnHub上下载的盒子,在VMware上打开,默认是不分配主机的 所以我们可以在VirtualBox上打开 一、信息收集 发现开放了21和80端口,查看一下80端口 80端口: 检查页面后发现…...
OpenMesh 获取网格面片各个顶点
文章目录 一、简介二、实现代码三、实现效果一、简介 OpenMesh中有很多循环器,这里便是其中一种面顶点循环器,以此来获得面片的各个顶点。 二、实现代码 #define _USE_MATH_DEFINES #include <iostream> #include <unordered_map>...
【前端设计模式】之原型模式
原型模式特性 原型模式(Prototype Pattern)是一种创建型设计模式,它通过克隆现有对象来创建新对象,而不是通过实例化类。原型模式的主要特性包括: 原型对象:原型对象是一个已经存在的对象,它作…...
软件设计原则
设计原则 一、单一原则 1. 如何理解单一职责原则 单一职责原则(Single Responsibility Principle,简称SRP),它要求一个类或模块应该只负责一个特定的功能。实现代码的高内聚和低耦合,提高代码的可读性和可维护性。 …...
【面试HOT100】哈希双指针滑动窗口
系列综述: 💞目的:本系列是个人整理为了秋招面试的,整理期间苛求每个知识点,平衡理解简易度与深入程度。 🥰来源:材料主要源于LeetCodeHot100进行的,每个知识点的修正和深入主要参考…...
SenseVoice-small语音识别实战案例:教育行业课堂录音自动字幕生成
SenseVoice-small语音识别实战案例:教育行业课堂录音自动字幕生成 1. 项目背景与需求场景 在教育信息化快速发展的今天,越来越多的课堂内容被录制下来用于学生复习、教师培训和质量评估。然而,海量的课堂录音面临着转写效率低、成本高、多语…...
基于RIME-CNN-LSSVM回归模型的优化与预测应用——以MATLAB环境为例
RIME-CNN-LSSVM回归 基于霜冰优化算法优化卷积神经网络(CNN)结合最小二乘向量机(LSSVM)的数据回归预测(可以更换为分类/单、多变量时序预测/回归,前私我),Matlab代码,可直接运行,适合小白新手 程序已经调试好,无需更改…...
从零封装Vue版JSMpeg播放器:支持截图/录制/旋转的直播流组件开发指南
从零封装Vue版JSMpeg播放器:支持截图/录制/旋转的直播流组件开发指南 1. 技术选型与架构设计 在Web端实现低延迟视频直播需要解决三个核心问题:编解码效率、传输协议选择和渲染性能。基于JSMpeg的方案优势在于: 超低延迟(可达50ms…...
C++的std--ranges代码生成
C20引入的std::ranges库彻底改变了代码生成的范式,它将函数式编程与现代C特性结合,让开发者能以声明式语法高效生成和处理数据流。这一特性不仅提升了代码可读性,还通过编译期优化显著提升性能。下面从三个关键角度解析其代码生成能力。范围适…...
MinIO装好了然后呢?手把手教你配置S3客户端并上传第一个文件(Python/Go示例)
MinIO实战入门:从零配置到多语言文件操作指南 当你第一次登录MinIO控制台,面对空荡荡的界面可能会感到茫然——这就像拿到了一把万能钥匙却不知道门在哪里。本文将带你跨过"安装成功"到"实际使用"的鸿沟,从获取凭证到完成…...
单台三相模块化多电平(MMC)小信号建模之旅
单台三相模块化多电平(mmc)小信号建模 内含功率外环、环流抑制、电流内环、PLL等控制部分完整建模在电力电子领域,三相模块化多电平(MMC)变换器因其诸多优点而备受关注。今天咱就唠唠单台MMC的小信号建模,这…...
Java毕业设计基于springboot+vue的旧时光咖啡厅管理系统
前言 该系统旨在提高咖啡厅的运营效率和服务质量,通过集成订单管理、库存管理、员工管理、客户管理等多个功能模块,实现对咖啡厅日常运营的全面管理。同时,系统还提供了丰富的数据分析和报表功能,帮助管理者更好地了解咖啡厅的运营…...
OpenClaw多模型对比:Qwen3.5-4B-Claude与基础版任务实测
OpenClaw多模型对比:Qwen3.5-4B-Claude与基础版任务实测 1. 测试背景与模型选择 最近在搭建个人自动化工作流时,我发现OpenClaw的任务执行质量高度依赖底层大模型的推理能力。为了找到最适合复杂任务的模型,我决定对两个版本进行系统测试&a…...
百川2-13B-4bits量化模型微基准测试:OpenClaw常用任务性能对比
百川2-13B-4bits量化模型微基准测试:OpenClaw常用任务性能对比 1. 测试背景与动机 上周在折腾OpenClaw自动化办公流程时,发现我的RTX 3090显卡在运行13B模型时显存频繁告警。这让我开始关注量化模型的实际表现——特别是当OpenClaw需要连续调用模型完成…...
AgentScope-Java:以 Agentic 为核心设计,构建可推理、可记忆、可扩展的生产级智能体系统
AgentScope-Java:以 Agentic 为核心设计,构建可推理、可记忆、可扩展的生产级智能体系统 副标题:从 ReActAgent、ReMe 记忆管理到高并发工程化落地,系统讲透 AgentScope-Java 的架构原理与企业级实践 一、为什么企业需要的不是“接个大模型”,而是 Agentic 系统 过去两年…...
