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引擎,它支持高并发的插入操作,但本身不是事务安全的,非常适合存储归档数据,如记录日志信息等。
几种常用引擎的功能比较
| 功能 | InnoDB | MyISAM | MEMORY | ARCHIVE |
|---|---|---|---|---|
| 存储限制 | 64TB | 256TB | RAM | None |
| 支持事务 | Yes | No | No | No |
| 支持全文索引 | No | Yes | No | No |
| 支持树索引 | Yes | Yes | Yes | No |
| 支持哈希索引 | No | No | Yes | No |
| 支持数据缓存 | Yes | No | N/A | No |
| 支持外键 | Yes | No | No | No |
相关文章:
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. 在共谋场景中,定价算法提高了企业经营者在销量数据上的透明性…...
数据结构 之 链表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 , springmvc-02-hello , 添加web的支持! 确定导入了SpringMVC 的依赖! 配置web.xml , 注册DispatcherServlet <?xml version"1.0" encoding"UTF-8…...
IOS面试题object-c 1-10
1、简述Object-C的理解与特性? OC 作为一门 面向对象 的语言,自然具有面向对象的语言特性:封装、继承、多态。 它既具有 静态语言的特性(如C),又有 动态语言的效率(动态绑定、动态加载等&#…...
原生JavaScript,根据后端返回扁平JSON动态【动态列头、动态数据】生成表格数据
前期准备: JQ下载地址: 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. 解决方法
参考:https://blog.csdn.net/weixin_45735242/article/details/120579387 解决方法 1.下载apache-hadoop-3.1.0-winutils-master 官网下载地址: https://github.com/s911415/apache-hadoop-3.1.0-winutils win配置系统环境: 然后重启idea…...
基于Springboot的高校物品捐赠管理系统(有报告)。Javaee项目,springboot项目。
演示视频: 基于Springboot的高校物品捐赠管理系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系…...
【硬件工程师面经整理29_FPGA】
文章目录 1 nand nor的区别,速度差异的原因?2 nand驱动方式?3 异步信号处理方法4 异步FIFO的深度是如何计算的5 异步复位同步释放的优缺点6 问了FPGA的内部组成?7 LE中查找表的实现原理?8 IOB的主要组成部分࿱…...
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方法执行后,会进行三次握手,建立连…...
chatgpt 镜像站汇总
无需登录直接可用的: ChatGPT Web - GPT-3.5-16k免费使用,吐字块,每日20次数,不需要登陆思研AI - 免费时限制每小时6次提问https://chatgpt.nicelinks.site/ - 免费使用频次有限制抱歉,站点已暂停 - 免费由开发者提供A…...
java面试题:为什么 SQL 语句不要过多的 join?
1 考察点 面试官主要想了解面试者对于 SQL 优化的理解以及在实际工作中如何处理 SQL 语句的性能问题。要回答好这个问题,只需要了解 join 操作会带来哪些影响,而这些影响对程序产生什么样的影响就行了。这个问题就是面试官想考察我们是不是平日里善于积…...
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. 引言 想象一下,你刚刚用yz-女生-角色扮演-造相Z-Turbo生成了一批精美的二次元角色图片,现在想要把这些作品保存起来,方便后续管理和检索。这时候,一个可靠的数据库系…...
AT24C256 EEPROM驱动开发与I²C时序工程实践
1. AT24C256 EEPROM驱动库技术解析与工程实践指南AT24C256 是一款经典的IC接口串行EEPROM芯片,由Atmel(现属Microchip)设计,广泛应用于工业控制、仪器仪表、通信设备及消费电子等嵌入式系统中。其256Kbit(32KB…...
3D打印机 爱乐酷CC2 SSH后台远程登录root账号密码
机型:Elegoo Centauri Carbon 2当前固件版本:V01.03.01.89SSH地址:打印机IP地址,例如192.168.31.101SSH端口:22SSH账号:rootSSH密码:MTY4ODE2机器设置->日志导出,导出到U盘的zip压…...
[特殊字符]️ MusePublicGPU效率提升:EulerAncestral调度器加速原理与调参
🏛 MusePublicGPU效率提升:EulerAncestral调度器加速原理与调参 1. 为什么是EulerAncestral?——它不是最快的,但最稳最出片 你有没有遇到过这样的情况:明明显卡够用,生成一张图却要等一分多钟࿱…...
【零基础入门】本地LLM聊天机器人保姆级教程|Windows+Mac通用
本文适合:完全不懂Python、AI零基础小白,无需显卡、无需翻墙、无需付费,跟着步骤复制粘贴即可拥有自己的本地AI助手。 🍓 前言 最近本地大模型特别火,很多同学想入门,却被环境配置、模型部署、代码逻辑劝退…...
本地化部署MT5:无需联网,保障敏感数据隐私的文本处理方案
本地化部署MT5:无需联网,保障敏感数据隐私的文本处理方案 1. 为什么选择本地化部署的文本处理方案 1.1 数据隐私保护的刚性需求 在当今数据驱动的商业环境中,企业面临着越来越严格的数据合规要求。许多行业如金融、医疗、法律等࿰…...
nanobot惊艳效果展示:用‘生成一份Python爬虫获取CSDN文章标题’指令执行结果
nanobot惊艳效果展示:用‘生成一份Python爬虫获取CSDN文章标题’指令执行结果 今天,我想和大家分享一个让我眼前一亮的AI助手体验。最近,我在一个预置了nanobot的镜像环境中,尝试了一个非常具体的指令:“生成一份Pyth…...
eVTOL 研制必读 | 厘清研制保证与设计保证的边界
在很多航空企业里,经常会出现一种现象:项目团队在谈“研制保证体系”,管理层在谈“设计保证系统”;技术人员在强调 ARP4754A/B,组织层面却在说 DOA 合规。大家都在讲“保证”,却未必在讲同一件事。结果是什…...
2001-2023年各省农产品进出口额数据(无缺失)
2001-2023年各省农产品进出口额数据 1、时间:2001-2023年 2、来源:商务BU、农业年鉴、海关总署 3、指标:年份、省份、农产品出口额(亿元)、农产品进口额(亿元)、农产品出口额(万美…...
WiFiEspAT:基于AT指令的嵌入式Wi-Fi协处理器适配库
1. 项目概述WiFiEspAT 是一个面向嵌入式系统的轻量级、高可靠性网络适配层库,其核心目标是将 ESP8266 或 ESP32 模块作为独立的 Wi-Fi 网络协处理器(Network Coprocessor),通过标准 AT 指令集与主控 MCU(如 AVR、ARM C…...
