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.…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...

使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...

【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合
在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...

人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...

基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...