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

mysql笔记:6. 存储引擎

文章目录

  • 查看引擎信息
  • 常用引擎介绍
    • InnoDB
    • MyISAM
    • MEMORY
    • 存储引擎的选择

数据库存储引擎是数据库底层组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等,使用不同的存储引擎,还可以获得特定的功能。
mysql提供多个不同的存储引擎,包括处理事务安全表的引擎和非事务安全表的引擎。在mysql中,不需要在整个服务器中使用同一种存储引擎,针对具体的要求,可以对不同的表使用不同的存储引擎。
mysql支持的存储引擎有:InnoDB/MyISAM/MEMORY/MERGE/ARCHIVE/FEDERATED/CSV/BLACKHOLE等。

查看引擎信息

可以使用show engines查看系统中的引擎信息。

mysql> show engines;

常用引擎介绍

InnoDB

InnoDB存储引擎为事务弄数据库的首选引擎,支持事务安全表,支持行锁和外键。MySQL 5.5.5后,它也是默认存储引擎。其特性如下:

  • 具有提交、回滚和崩溃恢复能力的事务安全性,其锁定在行级并且也在SELECT语句中提供一个类似Oracle的非锁定读。在SQL查询中,可以自由将InnoDB类型的表与其他类型的表混合起来。
  • 它是为处理巨大数据量的最大性能设计。其CPU效率可能是其他基于磁盘的关系数据库引擎所不能匹敌的。
  • 它完全与MySQL服务器整合,在主内存中缓存数据和索引而维持其自己的缓冲池。InnoDB表可以是任意尺寸的,即便是文件尺寸被限制为2GB也不影响。而在MyISAM表中,每个表被存在分离的文件中。
  • 它支持外键完整性约束。存储数据时,每张表的存储按主键顺序存放,如果没有显示定义主键,InnoDB会为每一行生成一个6字节的ROWID,并以此作为主键。
  • 它被用在众多需要高性能的大型数据库站点上。InnoDB不创建目录。

MyISAM

MyISAM基于ISAM存储引擎,并对其进行扩展。它是在Web、数据仓储和其他应用环境下经常使用的存储引擎之一。MyISAM拥有较高的插入、查询速度,但它不支持事务。在MySQL5.5.5之前版本, MyISAM是默认存储引擎。其主要特点如下:

  • 大文件达63位文件长度。
  • 当把删除、更新及插入操作混合使用的时候,动态尺寸的行产生更少的碎片。
  • 每个表最大索引数是64,这可以通过重新编译来改变。每个索引最大的列是16。
  • 最大的键长度是1000字节,这也可以通过编译来改变。
  • BLOB和TEXT列可以被索引
  • NULL值被允许在索引的列中。这个值占每个键的0-1个字节
  • 所有数字键值以高字节优先被存储以允许一个更高的索引压缩
  • 每个MyISAM类型的表都有一个AUTO_INCREMENT的内部列,当执行INSERT和UPDATE时该列被更新,所以MyISAM表的AUTO_INCREMENT列更新比InnoDB更快
  • 可以把数据文件和索引文件放在不同目录
  • 每个字符列可以有不同的字符集
  • 有VARCHAR的表可以固定或动态记录长度
  • VARCHAR和CHAR列可以多达64KB
    使用MyISAM创建数据库时,将生成三个文件。文件名以表名开始,并以不同的扩展名来指出文件类型:
  • .frm - 文件存储表定义
  • .MYD(MYData) - 数据文件
  • .MYI(MYIndex) - 索引文件

MEMORY

Memory引擎将表中的数据存储到内存中,为查询和引用其他表数据提供快速访问。其特性如下:

  • 每个表可以有32个索引,每个索引16列,以及500字节的最大键长度
  • 存储引擎执行HASH和BTREE索引
  • 可以在一个表中有非唯一键
  • 使用一个固定的记录长度格式
  • 不支持BLOB和TEXT列
  • 支持AUTO_INCREMENT列和对可包含NULL值的列的索引
  • 在所有客户端之间共享
  • 当MEMORY表和服务器空闲时,MySQL会在内存中创建表共享
  • 当不再需要表内容时,想释放被表使用的内存,应该执行DELETE FROM或TRUNCATE TABLE命令,或者使用DROP TABLE直接删除整个表

存储引擎的选择

不同的存储引擎特点不同,为了在实际应用中作出选择,先需要考虑每一个存储引擎提供了哪些不同的功能。

  • 如果要提供提交、回滚和崩溃恢复能力的事务安全(ACID兼容)能力,并要求实现并发控制,InnoDB是不错的选择。
  • 如果表主要用来插入和查询记录,则MyISAM引擎能提供较高的处理效率
  • 如果只是临时存储数据,数据量不大,并且不需要较高的数据安全性,可以选择MEMORY引擎。MySQL也使用该引擎作为临时表,存放查询的中间结果
  • 如果只有INSERT和SELECT操作,可以选择ARCHIVE引擎,它支持高并发的插入操作,但本身不是事务安全的,非常适合存储归档数据,如记录日志信息等。

几种常用引擎的功能比较

功能InnoDBMyISAMMEMORYARCHIVE
存储限制64TB256TBRAMNone
支持事务YesNoNoNo
支持全文索引NoYesNoNo
支持树索引YesYesYesNo
支持哈希索引NoNoYesNo
支持数据缓存YesNoN/ANo
支持外键YesNoNoNo

相关文章:

mysql笔记:6. 存储引擎

文章目录 查看引擎信息常用引擎介绍InnoDBMyISAMMEMORY存储引擎的选择 数据库存储引擎是数据库底层组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等,使用不同的存储引擎&#…...

(golang)切片何时会创建新切片或影响原切片

什么时候切片操作会影响原切片 // 1.切片后没有触发slice的扩容机制时 什么时候对切片操作会创建新切片不影响原切片 // 2.对切片头元素进行截取的时候 // 3.当使用append时,len > cap则会触发扩容机制 前置: //slice结构体 type SliceHeader struct…...

前端面试——W3C标准及规范

W3C标准 1、万维网联盟标准不是某一个标准,而是一些列标准的集合。 简单来说可以分为结构、表现和行为 结构 主要是有HTML标签组成 表现 即指css样式表 行为 主要是有js、dom组成 web标准一般是将该三部分独立分开,使其更具有模块化。但一般产生行为时&…...

读算法的陷阱:超级平台、算法垄断与场景欺骗笔记07_价格歧视

1. 行为歧视 1.1. 单个企业通过使用数据驱动的算法,从而更好地实现锁定客户、开展个性化营销与定价的目的 1.2. 市场环境再次发生了变化 1.2.1. 在共谋场景中,定价算法提高了企业经营者在销量数据上的透明性&#xf…...

数据结构 之 链表LinkedList

目录 1. ArrayList的缺陷: 2. 链表: 2.1 链表的概念及结构: 3. 链表的使用和模拟实现: 3.1 构造方法: 3.2 模拟实现: 4. 源码分享: 在我学习顺序表之后,我就立马开始了链表的学…...

事务【MySQL】

事务的概念 引入 在 A 转账 100 元给 B 的过程中,如果在 A 的账户已经减去了 100 元,B 的账户还未加上 100 元之前断网,那么这 100 元将会凭空消失。对于转账这件事,转出和转入这两件事应该是绑定在一起的,任意一个动…...

Anaconda 的一些配置

Anaconda 安装及修改环境默认位置 https://blog.csdn.net/qq_54562136/article/details/128932352 最重要的一步!!!!!改文件夹权限 Anaconda创建、激活、退出、删除虚拟环境 修改pip install 默认安装路径...

利用Nginx正向代理实现局域网电脑访问外网

引言 在网络环境中,有时候我们需要让局域网内的电脑访问外网,但是由于网络策略或其他原因,直接访问外网是不可行的。这时候,可以借助 Nginx 来搭建一个正向代理服务器,实现局域网内电脑通过 Nginx 转发访问外网的需求…...

SpringMVC03、HelloSpring

3、HelloSpring 3.1、配置版 新建一个Moudle &#xff0c; springmvc-02-hello &#xff0c; 添加web的支持&#xff01; 确定导入了SpringMVC 的依赖&#xff01; 配置web.xml &#xff0c; 注册DispatcherServlet <?xml version"1.0" encoding"UTF-8…...

IOS面试题object-c 1-10

1、简述Object-C的理解与特性&#xff1f; OC 作为一门 面向对象 的语言&#xff0c;自然具有面向对象的语言特性&#xff1a;封装、继承、多态。 它既具有 静态语言的特性&#xff08;如C&#xff09;&#xff0c;又有 动态语言的效率&#xff08;动态绑定、动态加载等&#…...

原生JavaScript,根据后端返回扁平JSON动态【动态列头、动态数据】生成表格数据

前期准备&#xff1a; JQ下载地址&#xff1a; https://jquery.com/ <!DOCTYPE html> <html><head><meta charset"utf-8"><title>JSON动态生成表格数据,动态列头拼接</title><style>table {width: 800px;text-align: cen…...

hadoop报错:HADOOP_HOME and hadoop.home.dir are unset. 解决方法

参考&#xff1a;https://blog.csdn.net/weixin_45735242/article/details/120579387 解决方法 1.下载apache-hadoop-3.1.0-winutils-master 官网下载地址&#xff1a; https://github.com/s911415/apache-hadoop-3.1.0-winutils win配置系统环境&#xff1a; 然后重启idea…...

基于Springboot的高校物品捐赠管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的高校物品捐赠管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系…...

【硬件工程师面经整理29_FPGA】

文章目录 1 nand nor的区别&#xff0c;速度差异的原因&#xff1f;2 nand驱动方式&#xff1f;3 异步信号处理方法4 异步FIFO的深度是如何计算的5 异步复位同步释放的优缺点6 问了FPGA的内部组成&#xff1f;7 LE中查找表的实现原理&#xff1f;8 IOB的主要组成部分&#xff1…...

Ping工作原理

文章目录 目的ping网络协议 OSIICMP什么是ICMP作用功能报文类型查询报文类型差错报文类型ICMP 在 IPv4 和 IPv6 的封装ICMP 在 IPv4 协议中的封装ICMP 在 IPv6 协议中的封装ICMP 头部日常ping 排除步骤ping 查询报文使用code扩展目的 本文主要是梳理ping的工作原理- 揭开 ICMP…...

python调用jar中java方法 静态类为例

java package test;public class test {// run方法返回当前脚本路径public static String runV1(String s) {return "log: " System.getProperty(s);}}python import jpype from jpype import * import osif __name__ "__main__":print(os.environ[JAV…...

tcp服务器客户端通信(socket编程)

目录 1.编程流程 2.代码演示 2.1 服务器代码 2.2 客户端代码 3.注意 3.1 ping命令 3.2 netstat命令 3.3 为什么memset? 3.4 哪个会阻塞? 3.5 显示连接信息 1.概念 1.1 编程流程 1.2 connect与listen connect方法执行后&#xff0c;会进行三次握手&#xff0c;建立连…...

chatgpt 镜像站汇总

无需登录直接可用的&#xff1a; ChatGPT Web - GPT-3.5-16k免费使用&#xff0c;吐字块&#xff0c;每日20次数&#xff0c;不需要登陆思研AI - 免费时限制每小时6次提问https://chatgpt.nicelinks.site/ - 免费使用频次有限制抱歉&#xff0c;站点已暂停 - 免费由开发者提供A…...

java面试题:为什么 SQL 语句不要过多的 join?

1 考察点 面试官主要想了解面试者对于 SQL 优化的理解以及在实际工作中如何处理 SQL 语句的性能问题。要回答好这个问题&#xff0c;只需要了解 join 操作会带来哪些影响&#xff0c;而这些影响对程序产生什么样的影响就行了。这个问题就是面试官想考察我们是不是平日里善于积…...

JAVA实战开源项目:学生日常行为评分管理系统(Vue+SpringBoot)

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、系统设计2.1 功能模块设计2.2.1 登录注册模块2.2.2 用户管理模块2.2.3 评分项目模块2.2.4 评分数据模块2.2.5 数据字典模块 2.3 可行性设计2.4 用例设计2.5 数据库设计2.5.1 整体 E-R 图2.5.2 用户2.5.3 评分项目2.5.4 评分数据2.5.…...

yz-女生-角色扮演-造相Z-Turbo与MySQL数据库交互实战教程

yz-女生-角色扮演-造相Z-Turbo与MySQL数据库交互实战教程 1. 引言 想象一下&#xff0c;你刚刚用yz-女生-角色扮演-造相Z-Turbo生成了一批精美的二次元角色图片&#xff0c;现在想要把这些作品保存起来&#xff0c;方便后续管理和检索。这时候&#xff0c;一个可靠的数据库系…...

AT24C256 EEPROM驱动开发与I²C时序工程实践

1. AT24C256 EEPROM驱动库技术解析与工程实践指南AT24C256 是一款经典的IC接口串行EEPROM芯片&#xff0c;由Atmel&#xff08;现属Microchip&#xff09;设计&#xff0c;广泛应用于工业控制、仪器仪表、通信设备及消费电子等嵌入式系统中。其256Kbit&#xff08;32KB&#xf…...

3D打印机 爱乐酷CC2 SSH后台远程登录root账号密码

机型&#xff1a;Elegoo Centauri Carbon 2当前固件版本&#xff1a;V01.03.01.89SSH地址&#xff1a;打印机IP地址&#xff0c;例如192.168.31.101SSH端口&#xff1a;22SSH账号&#xff1a;rootSSH密码&#xff1a;MTY4ODE2机器设置->日志导出&#xff0c;导出到U盘的zip压…...

[特殊字符]️ MusePublicGPU效率提升:EulerAncestral调度器加速原理与调参

&#x1f3db; MusePublicGPU效率提升&#xff1a;EulerAncestral调度器加速原理与调参 1. 为什么是EulerAncestral&#xff1f;——它不是最快的&#xff0c;但最稳最出片 你有没有遇到过这样的情况&#xff1a;明明显卡够用&#xff0c;生成一张图却要等一分多钟&#xff1…...

【零基础入门】本地LLM聊天机器人保姆级教程|Windows+Mac通用

本文适合&#xff1a;完全不懂Python、AI零基础小白&#xff0c;无需显卡、无需翻墙、无需付费&#xff0c;跟着步骤复制粘贴即可拥有自己的本地AI助手。 &#x1f353; 前言 最近本地大模型特别火&#xff0c;很多同学想入门&#xff0c;却被环境配置、模型部署、代码逻辑劝退…...

本地化部署MT5:无需联网,保障敏感数据隐私的文本处理方案

本地化部署MT5&#xff1a;无需联网&#xff0c;保障敏感数据隐私的文本处理方案 1. 为什么选择本地化部署的文本处理方案 1.1 数据隐私保护的刚性需求 在当今数据驱动的商业环境中&#xff0c;企业面临着越来越严格的数据合规要求。许多行业如金融、医疗、法律等&#xff0…...

nanobot惊艳效果展示:用‘生成一份Python爬虫获取CSDN文章标题’指令执行结果

nanobot惊艳效果展示&#xff1a;用‘生成一份Python爬虫获取CSDN文章标题’指令执行结果 今天&#xff0c;我想和大家分享一个让我眼前一亮的AI助手体验。最近&#xff0c;我在一个预置了nanobot的镜像环境中&#xff0c;尝试了一个非常具体的指令&#xff1a;“生成一份Pyth…...

eVTOL 研制必读 | 厘清研制保证与设计保证的边界

在很多航空企业里&#xff0c;经常会出现一种现象&#xff1a;项目团队在谈“研制保证体系”&#xff0c;管理层在谈“设计保证系统”&#xff1b;技术人员在强调 ARP4754A/B&#xff0c;组织层面却在说 DOA 合规。大家都在讲“保证”&#xff0c;却未必在讲同一件事。结果是什…...

2001-2023年各省农产品进出口额数据(无缺失)

2001-2023年各省农产品进出口额数据 1、时间&#xff1a;2001-2023年 2、来源&#xff1a;商务BU、农业年鉴、海关总署 3、指标&#xff1a;年份、省份、农产品出口额&#xff08;亿元&#xff09;、农产品进口额&#xff08;亿元&#xff09;、农产品出口额&#xff08;万美…...

WiFiEspAT:基于AT指令的嵌入式Wi-Fi协处理器适配库

1. 项目概述WiFiEspAT 是一个面向嵌入式系统的轻量级、高可靠性网络适配层库&#xff0c;其核心目标是将 ESP8266 或 ESP32 模块作为独立的 Wi-Fi 网络协处理器&#xff08;Network Coprocessor&#xff09;&#xff0c;通过标准 AT 指令集与主控 MCU&#xff08;如 AVR、ARM C…...