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 …...
招投标系统:从线下招标到高效数字化
随着科技的不断进步,越来越多的企业开始意识到传统的线下招标方式存在的种种限制,并积极转向电子招投标系统。这一趋势的兴起不仅是数字化转型的必然选择,更是企业提高效率、降低成本的有效途径。 招投标系统的定义与作用 招投标系统是一种…...
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…...
手写分布式配置中心(二)实现分布式配置中心的简单版本
这一篇文章比较简单,就是一个增删改查的服务端和一个获取配置的客户端,旨在搭建一个简单的配置中心架构,代码在 https://gitee.com/summer-cat001/config-center 服务端 服务端选择用springboot 2.7.14搭建,设计了4个接口/confi…...
跨境知识分享:什么是动态IP?和静态IP有什么区别?
对于我们跨境人来说,清楚地了解IP地址、代理IP等这些基础知识,并学会正确地使用IP地址对于保障店铺的安全性和稳定性至关重要,尤其是理解动态IP和静态IP之间的区别,以及如何利用这些知识来防止账号关联,对于每个电商卖…...
liunx安装jdk、redis、nginx
jdk安装 下载jdk,解压。 sudo tar -zxvf /usr/local/jdk-8u321-linux-x64.tar.gz -C /usr/local/ 在/etc/profile文件中的,我们只需要编辑一下,在文件的最后加上java变量的有关配置(其他内容不要动)。 export JAVA_HOME/usr/l…...
【C++】STL学习之旅——初识STL,认识string类
string类 1 STL 简介2 STL怎么学习3 STL缺陷4 string4.1 初识 string4.2 初步使用构造函数成员函数 5 小试牛刀Thanks♪(・ω・)ノ谢谢阅读!!!下一篇文章见!!! 1 STL 简介 …...
Java学习笔记002——类的修饰符
在Java语言中,类的访问修饰符决定了其它类能够访问该类的方式。类有如下4种访问修饰符,在创建类时用于类的声明: 1、public: 当一个类被声明为public时,它可以从任何其他类中被访问,无论这些类位于哪个包中。通常&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 那么便不能随便在这里面增加文件了,增加了签名分块(不然签名信息存哪里)这里涉及一个文件概念 …...
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Scroll容器组件
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Scroll容器组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Scroll容器组件 可滚动的容器组件,当子组件的布局尺寸超过父组件…...
FreeRTOS操作系统学习——FreeRTOS工程创建
FreeROTS工程创建 详细步骤 如无特殊情况,大部人都要配置为外部高速时钟 另外,本实验使用了FreeRTOS,FreeRTOS的时基使用的是Systick,而 STM32CubeMX中默认的HAL库时基也是Systick,为了避免可能的冲突,最…...
6. 使用 Spring Boot进行开发(Developing with Spring Boot)
6. 使用 Spring Boot进行开发(Developing with Spring Boot) 本节详细介绍了如何使用Spring Boot。它涵盖考虑构建系统、自动配置以及如何运行应用程序等主题。我们还介绍一些 Spring Boot 最新做法。虽然 Spring Boot 没有什么特别之处(它只…...
IP地址工具,判断IP是否在指定范围内(支持ipv6)
常用方法,判断一个ip是否在指定的ip范围内,范围可能包括起始ip范围或者掩码形式,无其它依赖, package com.yk.ip;import java.math.BigInteger; import java.net.InetAddress; import java.net.UnknownHostException; import jav…...
Redis 之六:Redis 的哨兵模式(Sentinel)
Redis 哨兵(Sentinel)模式是一种高可用性解决方案,用于监控和自动故障转移的集群系统。 在 Redis Sentinel 架构中,哨兵是一组运行在特殊模式下的 Redis 进程,它们可以监控一个或多个主从复制结构中的 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; 在Linux目标板和Windows PC上运行iperf进行测试; 二、调试 1、查询目标板上的iperf 使用终端助手连接目标板,然后输入命令查询iperf的版本: rootrk3566-buildroot:~# iperf -v iperf version …...
【无标题】计算机主要应用于哪些领域
科学计算(或称为数值计算)、数据处理(信息管理)、辅助工程、生产自动化、人工智能。1、科学计算(或称为数值计算):早期的计算机主要用于科学计算。目前,科学计算仍然是计算机应用的一…...
AM62x处理器SPI总线实战:从原理到Linux驱动配置与调试
1. 从四根线到高效数据流:深入拆解AM62x处理器的SPI总线实战在嵌入式开发里,和各类传感器、存储芯片、显示屏打交道是家常便饭。当你需要一种简单、高效、引脚又少的通信方式时,SPI总线几乎总是首选方案。它就像一条精心设计的高速公路&#…...
Vivado 2022.2的.xsa文件,真能通吃Petalinux 2019.2到2022.2吗?我的混搭实测记录
Vivado与Petalinux版本混搭实战:打破常规的.xsa文件兼容性探索 在FPGA开发领域,Xilinx工具链的版本匹配一直被视为金科玉律。但当我们手头只有高版本Vivado,却需要兼容旧版Petalinux环境时,是否真的必须严格遵循官方版本对应表&a…...
抖音直播弹幕实时采集:基于Golang的高性能解决方案
抖音直播弹幕实时采集:基于Golang的高性能解决方案 【免费下载链接】douyin-live-go 抖音(web) 弹幕爬虫 golang 实现 项目地址: https://gitcode.com/gh_mirrors/do/douyin-live-go 在直播电商和内容创作蓬勃发展的今天,实时获取抖音直播间的弹幕…...
Midjourney印象派商业级应用白皮书(含版权合规清单):广告/出版/IP衍生必备的5类授权边界判定法
更多请点击: https://kaifayun.com 第一章:Midjourney印象派商业级应用白皮书导论 Midjourney 不仅是生成式AI图像工具,更是一种可嵌入品牌视觉系统、广告创意链路与数字内容工业化流程的视觉协作者。其“印象派”风格能力——强调光色律动、…...
使用Taotoken后我的API调用延迟与用量清晰可见
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 使用Taotoken后我的API调用延迟与用量清晰可见 作为一名频繁调用各类大语言模型的独立开发者,管理多个API密钥、追踪不…...
5分钟掌握GoReleaser:自动化发布Go项目的终极指南 [特殊字符]
5分钟掌握GoReleaser:自动化发布Go项目的终极指南 🚀 【免费下载链接】goreleaser Release engineering, simplified 项目地址: https://gitcode.com/gh_mirrors/go/goreleaser 还在为每次发布Go项目而烦恼吗?手动构建二进制文件、打包…...
如何快速掌握小程序UI组件库:Vant Weapp的5大优势与完整指南
如何快速掌握小程序UI组件库:Vant Weapp的5大优势与完整指南 【免费下载链接】vant-weapp 轻量、可靠的小程序 UI 组件库 项目地址: https://gitcode.com/gh_mirrors/va/vant-weapp Vant Weapp是一款轻量、可靠的小程序UI组件库,专为微信小程序开…...
PixelFlasher:5分钟掌握Pixel设备刷机与Root管理的终极指南
PixelFlasher:5分钟掌握Pixel设备刷机与Root管理的终极指南 【免费下载链接】PixelFlasher Pixel™ phone flashing GUI utility with features. 项目地址: https://gitcode.com/gh_mirrors/pi/PixelFlasher PixelFlasher是一款专为Google Pixel设备设计的图…...
如何用1条提示生成可商用超现实IP?:Midjourney商业级输出的6道合规校验流程(含版权链存证路径)
更多请点击: https://codechina.net 第一章:超现实IP的商业价值与Midjourney生成范式跃迁 超现实IP正从边缘创意实验走向主流商业基础设施——其核心驱动力并非单纯视觉奇观,而是对用户心智注意力的结构性重构。当品牌不再依赖写实叙事建立信…...
教育科技项目如何通过Taotoken平衡AI功能效果与接口成本
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 教育科技项目如何通过Taotoken平衡AI功能效果与接口成本 在在线教育或培训类应用的开发与运营中,文本生成与总结功能已…...
