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

MySQL——存储引擎

存储引擎

InnoDB

是 MySQL 默认的存储引擎,只有在需要它不支持的特性时,才会考虑其他存储引擎

实现了 4 个标准的隔离级别,默认级别可重复度。在可重复度隔离级别下,通过 MVCC + 间隙锁防止幻读

主索引是聚簇索引

内部做了很多优化,包括磁盘读取数据时采用的可预测性读、能够加快读操作并且自动创建的自适应哈希索引、能够加快插入数据的插入缓冲区等

支持真正的在线热备份。其它存储引擎不支持在线热备份,要获取一致性视图需要停止对所有表的写入,而在读写混合场景中,停止写入可能也意味着停止读取。

MyISAM

设计简单,数据以紧密格式存储。对于只读数据,或者表比较小、可以容忍修复操作,则仍然可以使用它

提供了大量的特性,包括压缩表、空间数据索引等

不支持事务

不支持行级锁,只能对整张表加锁,读取时会对需要读到的所有表加共享锁,写入时则对表加排它锁。但在表有读取操作的同时,也可以往表中插入新的记录,这被称为并发插入(CONCURRENT INSERT)。

可以手工或者自动执行检查和修复操作,但是和事务恢复以及崩溃恢复不同,可能导致一些数据丢失,而且修复操作是非常慢的。

如果指定了 DELAY_KEY_WRITE 选项,在每次修改执行完成时,不会立即将修改的索引数据写入磁盘,而是会写到内存中的键缓冲区,只有在清理键缓冲区或者关闭表的时候才会将对应的索引块写入磁盘。这种方式可以极大的提升写入性能,但是在数据库或者主机崩溃时会造成索引损坏,需要执行修复操作。

InnoDB 对比 MyISAM

  • Innodb支持行级锁,事务,外键,数据库异常后的安全恢复,支持MVCC,只有不需要支持它的特性时,才会考虑其他的存储引擎
  • 索引实现不同,虽然都是B+树,InnoDB支持"聚簇索引",MyISAM不支持。聚簇索引可以大大提升性能,因为它将数据按照主键排序物理存储,使得相邻的数据在物理存储上也是相邻的,减少了数据的IO读取
  • CRUD操作:
    MyISAM:如果执行大量的SELECT,MyISAM是更好的选择。
    InnoDB:如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表。DELETE 从性能上InnoDB更优,但DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除,在innodb上如果要清空保存有大量数据的表,最好使用truncate table这个命令。
  • 崩溃恢复: MyISAM 崩溃后发生损坏的概率比 InnoDB 高很多,而且恢复的速度也更慢。
  • 其它特性: MyISAM 支持压缩表和空间数据索引,InnoDB 支持外键,支持在线热备份

Memory

是一种基于内存的存储引擎

相比于其它存储引擎,Memory 存储引擎可以快速地创建或删除表,因为它的表是纯内存的,数据可以在不同的客户端之间共享,且不需要频繁地读写硬盘,所以在一些特定的场景下,使用 Memory 存储引擎可以获得较高的性能表现。例如,存放一些暂时数据,类似于缓存操作,或者作为临时表等。

不过,由于 Memory 存储引擎宕机后数据将会全部丢失,所以它不适合存放重要的数据。此外,Memory 存储引擎还存在一些限制,例如只支持表锁,不支持事务、不支持 BLOB 和 TEXT 类型、不支持自动增长列等。

相关文章:

MySQL——存储引擎

存储引擎 InnoDB 是 MySQL 默认的存储引擎,只有在需要它不支持的特性时,才会考虑其他存储引擎 实现了 4 个标准的隔离级别,默认级别可重复度。在可重复度隔离级别下,通过 MVCC 间隙锁防止幻读 主索引是聚簇索引 内部做了很多…...

YoloV8改进策略:Block改进|MogaNet——高效的多阶门控聚合网络

文章目录 摘要论文:《MogaNet——高效的多阶门控聚合网络》1、简介2、相关工作2.1、视觉Transformers2.2、ViT时代的卷积网络3、从多阶博弈论交互的角度看表示瓶颈4、方法论4.1、MogaNet概述4.2、多阶门控聚合4.3、通过通道聚合进行多阶特征重新分配4.4、实现细节5、实验5.1、…...

关于vue3使用prop传动态参数时父子数据不同步更新问题

子: <template><div><h3>子组件</h3><input :value"modelValue" input"$emit(update:modelValue, $event.target.value)"></div> </template><script setup> import { defineProps, defineEmits } from …...

招投标系统:从线下招标到高效数字化

随着科技的不断进步&#xff0c;越来越多的企业开始意识到传统的线下招标方式存在的种种限制&#xff0c;并积极转向电子招投标系统。这一趋势的兴起不仅是数字化转型的必然选择&#xff0c;更是企业提高效率、降低成本的有效途径。 招投标系统的定义与作用 招投标系统是一种…...

day08_分类品牌管理商品规格管理商品管理

文章目录 1 分类品牌管理1.1 菜单添加1.2 表结构介绍1.3 页面制作1.4 品牌列表加载1.4.1 后端接口BrandControllerBrandServiceBrandMapperBrandMapper.xml 1.4.2 前端对接brand.jscategoryBrand.vue 1.5 分类数据加载1.6 列表查询1.6.1 需求说明1.6.2 后端接口需求分析Categor…...

手写分布式配置中心(二)实现分布式配置中心的简单版本

这一篇文章比较简单&#xff0c;就是一个增删改查的服务端和一个获取配置的客户端&#xff0c;旨在搭建一个简单的配置中心架构&#xff0c;代码在 https://gitee.com/summer-cat001/config-center 服务端 服务端选择用springboot 2.7.14搭建&#xff0c;设计了4个接口/confi…...

跨境知识分享:什么是动态IP?和静态IP有什么区别?

对于我们跨境人来说&#xff0c;清楚地了解IP地址、代理IP等这些基础知识&#xff0c;并学会正确地使用IP地址对于保障店铺的安全性和稳定性至关重要&#xff0c;尤其是理解动态IP和静态IP之间的区别&#xff0c;以及如何利用这些知识来防止账号关联&#xff0c;对于每个电商卖…...

liunx安装jdk、redis、nginx

jdk安装 下载jdk,解压。 sudo tar -zxvf /usr/local/jdk-8u321-linux-x64.tar.gz -C /usr/local/ 在/etc/profile文件中的&#xff0c;我们只需要编辑一下&#xff0c;在文件的最后加上java变量的有关配置&#xff08;其他内容不要动&#xff09;。 export JAVA_HOME/usr/l…...

【C++】STL学习之旅——初识STL,认识string类

string类 1 STL 简介2 STL怎么学习3 STL缺陷4 string4.1 初识 string4.2 初步使用构造函数成员函数 5 小试牛刀Thanks♪(&#xff65;ω&#xff65;)&#xff89;谢谢阅读&#xff01;&#xff01;&#xff01;下一篇文章见&#xff01;&#xff01;&#xff01; 1 STL 简介 …...

Java学习笔记002——类的修饰符

在Java语言中&#xff0c;类的访问修饰符决定了其它类能够访问该类的方式。类有如下4种访问修饰符&#xff0c;在创建类时用于类的声明&#xff1a; 1、public: 当一个类被声明为public时&#xff0c;它可以从任何其他类中被访问&#xff0c;无论这些类位于哪个包中。通常&am…...

华为交换机常见命令总结

文章目录 查看MAC地址清除MAC地址修改MAC地址的老化时间查询STP信息查询接口与vlan的信息 查看MAC地址 查看所有MAC地址表项 display mac-address 查看静态MAC地址表项 display mac-address static //会把动态的过滤掉 查看动态MAC地址表项 display mac-address dynamic //会…...

Android 签名机制

V1是内部文件单个签 但是增加apk文件目录下面随意增加文件并不会有影响,它只关心meta-info文件 mf汇总清单的各个文件sha256 V2 整个APK文件,按文件进行hash 那么便不能随便在这里面增加文件了,增加了签名分块&#xff08;不然签名信息存哪里&#xff09;这里涉及一个文件概念 …...

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Scroll容器组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之Scroll容器组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Scroll容器组件 可滚动的容器组件&#xff0c;当子组件的布局尺寸超过父组件…...

FreeRTOS操作系统学习——FreeRTOS工程创建

FreeROTS工程创建 详细步骤 如无特殊情况&#xff0c;大部人都要配置为外部高速时钟 另外&#xff0c;本实验使用了FreeRTOS&#xff0c;FreeRTOS的时基使用的是Systick&#xff0c;而 STM32CubeMX中默认的HAL库时基也是Systick&#xff0c;为了避免可能的冲突&#xff0c;最…...

6. 使用 Spring Boot进行开发(Developing with Spring Boot)

6. 使用 Spring Boot进行开发&#xff08;Developing with Spring Boot&#xff09; 本节详细介绍了如何使用Spring Boot。它涵盖考虑构建系统、自动配置以及如何运行应用程序等主题。我们还介绍一些 Spring Boot 最新做法。虽然 Spring Boot 没有什么特别之处&#xff08;它只…...

IP地址工具,判断IP是否在指定范围内(支持ipv6)

常用方法&#xff0c;判断一个ip是否在指定的ip范围内&#xff0c;范围可能包括起始ip范围或者掩码形式&#xff0c;无其它依赖&#xff0c; package com.yk.ip;import java.math.BigInteger; import java.net.InetAddress; import java.net.UnknownHostException; import jav…...

Redis 之六:Redis 的哨兵模式(Sentinel)

Redis 哨兵&#xff08;Sentinel&#xff09;模式是一种高可用性解决方案&#xff0c;用于监控和自动故障转移的集群系统。 在 Redis Sentinel 架构中&#xff0c;哨兵是一组运行在特殊模式下的 Redis 进程&#xff0c;它们可以监控一个或多个主从复制结构中的 Redis 主服务器以…...

总线要点笔记

1. AXI/AHB/APB差异 AMBA (Advanced Microcontroller Bus Architecture) 高级处理器总线架构 AHB (Advanced High-performance Bus) 高级高性能总线 ASB (Advanced System Bus) 高级系统总线 APB (Advanced Peripheral Bus) 高级外围总线 AXI (Advanced eXtensible Interface) …...

RK3566 linux iperf网络测试

一、开发环境 系统:buildroot&#xff1b; 在Linux目标板和Windows PC上运行iperf进行测试&#xff1b; 二、调试 1、查询目标板上的iperf 使用终端助手连接目标板&#xff0c;然后输入命令查询iperf的版本&#xff1a; rootrk3566-buildroot:~# iperf -v iperf version …...

【无标题】计算机主要应用于哪些领域

科学计算&#xff08;或称为数值计算&#xff09;、数据处理&#xff08;信息管理&#xff09;、辅助工程、生产自动化、人工智能。1、科学计算&#xff08;或称为数值计算&#xff09;&#xff1a;早期的计算机主要用于科学计算。目前&#xff0c;科学计算仍然是计算机应用的一…...

Llama-3.2V-11B-cot 安全与合规指南:避免生成有害内容的过滤策略

Llama-3.2V-11B-cot 安全与合规指南&#xff1a;避免生成有害内容的过滤策略 最近在帮一个朋友部署一个基于视觉大模型的应用&#xff0c;他兴奋地给我展示各种有趣的图文对话功能。聊着聊着&#xff0c;他突然问了一个很实际的问题&#xff1a;“这玩意儿要是用户上传一张不合…...

OpenClaw故障排查大全:千问3.5-27B接口调用常见错误解决

OpenClaw故障排查大全&#xff1a;千问3.5-27B接口调用常见错误解决 1. 开篇&#xff1a;当OpenClaw遇上千问3.5-27B 上周深夜&#xff0c;我的OpenClaw突然罢工了——一个原本运行良好的自动化脚本在调用千问3.5-27B模型时频繁报错。作为个人效率工具的重度用户&#xff0c;…...

mbedBug:面向mbed OS的轻量级嵌入式调试纳米框架

1. mbedBug&#xff1a;面向mbed OS的轻量级嵌入式调试纳米框架1.1 设计定位与工程价值mbedBug并非通用型调试器或完整测试框架&#xff0c;而是一个专为资源受限嵌入式环境裁剪的调试纳米框架&#xff08;Debug Nanoframework&#xff09;。其核心设计哲学是“最小侵入、最大可…...

OpenClaw与Qwen3-14B深度优化:降低30%Token消耗的5个技巧

OpenClaw与Qwen3-14B深度优化&#xff1a;降低30%Token消耗的5个技巧 1. 为什么需要关注Token消耗&#xff1f; 当我第一次在本地部署OpenClaw对接Qwen3-14B模型时&#xff0c;就被它惊人的Token消耗量震惊了。一个简单的"打开浏览器搜索天气"任务&#xff0c;竟然…...

告别Qt中文乱码和C2001:一份完整的源码文件编码管理指南(从创建到编译)

Qt全流程编码管理实战&#xff1a;从源码创建到编译运行的终极解决方案 当你在Qt项目中第一次看到"C2001: 常量中有换行符"这个错误提示时&#xff0c;可能会感到困惑——明明代码看起来完全正常&#xff0c;为什么编译器就是不认账&#xff1f;更令人抓狂的是&#…...

STM32首次烧录选择erase sectors导致程序跑飞

一、故障现象小批量打样回来的板子&#xff0c;烧录程序后一切正常&#xff0c;蜂鸣器响0.5s&#xff0c;LED闪烁等待握手&#xff1b;但是断电重启后蜂鸣器长鸣&#xff0c;LED不闪烁&#xff0c;无法正常运行。二、分析解决过程首先我看了一下电源&#xff0c;电压、电流都是…...

打破设备壁垒:VR-Reversal实现3D内容自由视角全设备适配

打破设备壁垒&#xff1a;VR-Reversal实现3D内容自由视角全设备适配 【免费下载链接】VR-reversal VR-Reversal - Player for conversion of 3D video to 2D with optional saving of head tracking data and rendering out of 2D copies. 项目地址: https://gitcode.com/gh_…...

小智AI固件开发者的福音:VSCode插件一键搞定ESP-IDF v5.4环境(Windows/Linux通用)

小智AI固件开发者的福音&#xff1a;VSCode插件一键搞定ESP-IDF v5.4环境&#xff08;Windows/Linux通用&#xff09; 在物联网开发领域&#xff0c;ESP32系列芯片凭借其优异的性能和丰富的功能&#xff0c;已经成为智能硬件开发的首选平台之一。而作为ESP32官方推荐的开发框架…...

Megatron-LM源码解析:Tensor与Sequence并行训练中的通信优化策略

1. Megatron-LM并行训练基础概念 在分布式训练领域&#xff0c;Megatron-LM已经成为大规模语言模型训练的事实标准框架。我第一次接触这个框架时&#xff0c;就被它精妙的并行设计所震撼。Tensor并行和Sequence并行是其中两种核心并行策略&#xff0c;理解它们的通信机制对优化…...

保姆级教程:在CentOS 8 Stream上从零部署Zabbix 6.4监控系统(Nginx+MariaDB 10.6+PHP 7.4)

企业级监控系统实战&#xff1a;CentOS 8 Stream上部署Zabbix 6.4全栈指南 在数字化转型浪潮中&#xff0c;IT基础设施监控已成为企业运维的核心支柱。Zabbix作为开源监控领域的标杆产品&#xff0c;其6.4版本带来了更强大的自动发现机制和可视化功能。本文将手把手带您完成从裸…...