MySQL存储
目录
1. MySQL存储引擎概述
2. 存储引擎的作用
3.存储引擎类型
4. 查看支持的存储引擎
6. InnoDB存储引擎
7. MyISAM与InnoDB的区别
8. 存储引擎的选择
9. 修改默认存储引擎
1. MySQL存储引擎概述
在MySQL中,数据通过不同的技术存储在文件(或内存)中,每种技术都有其独特的存储机制、索引技巧、锁定水平以及提供的功能和能力。选择合适的存储引擎可以显著改善应用的整体性能。
2. 存储引擎的作用
- 存储和检索数据:不同的存储引擎对数据的存储和检索方式有所不同,适用于不同的应用场景。
- 提供额外功能:如事务处理、外键约束等。
3.存储引擎类型
| 存储引擎 | InnoDB | MyISAM | Memory | Archive |
|---|---|---|---|---|
| 事务支持 | 是 | 否 | 否 | 否 |
| 外键支持 | 是 | 否 | 否 | 否 |
| 行级锁定 | 是 | 表级锁定 | 表级锁定(但通常很快) | 无锁定(插入后无法更新或删除) |
| 默认存储格式 | 动态行格式 | 静态/动态/压缩 | 内存中的哈希表 | 压缩的行格式 |
| 适用场景 | 高并发更新、事务处理、外键约束 | SELECT、INSERT密集型应用,不支持事务 | 临时表、缓存数据 | 日志、审计等非关键数据 |
| 自动灾难恢复 | 是 | 否 | 依赖于MySQL服务器的稳定性 | 否 |
| 数据持久化 | 是(磁盘) | 是(磁盘) | 重启后丢失(内存) | 是(磁盘,但不可更新) |
| 索引类型 | B+树 | B+树 | HASH(默认)或BTREE | 插入时压缩,不支持索引搜索 |
| 文件结构 | 表空间文件、日志文件 | .frm(定义)、.MYD(数据)、.MYI(索引) | 内存中的数据结构 | .arc(归档文件) |
| 数据修改后的恢复 | 支持事务回滚 | 不支持事务,但可以检查和修复表 | 重启后数据丢失 | 不支持修改操作 |
| 性能特点 | 高并发、ACID兼容 | 高查询性能、较低写入性能 | 极快的数据访问速度,但受限于内存大小 | 高效存储大量数据,但不支持数据修改 |
4. 查看支持的存储引擎
在MySQL客户端中,可以使用以下命令查看支持的存储引擎:
5. MyISAM存储引擎
- 特点:不支持事务和外键,访问速度快,适用于以SELECT、INSERT为主的应用。
- 文件结构:每个MyISAM表在磁盘上存储为三个文件,扩展名分别为frm(存储表定义)、MYD(存储数据)、MYI(存储索引)。
- 存储格式:
- 静态表:固定长度记录,存储迅速,容易缓存,但占用空间多。
- 动态表:记录长度可变,占用空间少,但更新、删除频繁时会产生碎片。
- 压缩表:由myisamchk工具创建,占用空间非常小。
- 检查与修复:可以使用CHECKTABLE和REPAIR TABLE语句检查和修复损坏的MyISAM表。
6. InnoDB存储引擎
- 特点:
- 健壮的事务型存储引擎,支持行级锁定和外键约束。
- MySQL 5.5.5版本开始,InnoDB成为默认存储引擎。
- 适用场景:
- 更新密集的表。
- 需要事务处理的应用。
- 支持自动灾难恢复和外键约束。
- 性能特点:
- 扫描全表计算行数时效率较低(如
SELECT COUNT(*) FROM table)。 - 清空表时效率较低(逐行删除)。
- 扫描全表计算行数时效率较低(如
7. MyISAM与InnoDB的区别
- 事务支持:InnoDB支持事务,MyISAM不支持。
- 锁机制:InnoDB支持行级锁(特定条件下可能锁全表),MyISAM主要使用表级锁。
- 外键约束:InnoDB支持,MyISAM不支持。
- 性能与空间:MyISAM在查询和插入方面性能更优,但InnoDB在更新频繁和需要事务的场景下表现更佳。
8. 存储引擎的选择
- 应用程序需求:如果需要事务处理,则选择InnoDB;如果查询性能要求高,则选择MyISAM。
- 数据量大小:MyISAM并非只能用于小型应用,大数据量时可通过分表分库等架构升级解决。
9. 修改默认存储引擎
- 通过ALTER TABLE:
先创建一个表
mysql> create database auth;
mysql> use auth
mysql> CREATE TABLE t1 (user_name CHAR(16), user_passwd CHAR(48));mysql> show table status from auth where name='t1'\G
mysql> alter table t1 engine=MyISAM;
mysql> show table status from auth where name='t1'\G
- 修改my.cnf配置文件:
[root@localhost ~]# vim /etc/my.cnf [mysqld] #添加下面语句 default-storage-engine=MyISAM[root@localhost ~]# systemctl restart mysqld [root@localhost ~]# mysql -uroot -ppwd123 mysql> use authmysql> CREATE TABLE t2 (user_name CHAR(16), user_passwd CHAR(48)); mysql> show table status from auth where name='t2'\G
并重启MySQL服务。 - 创建表时指定:
mysql> use auth mysql> create table t3 (id int(10),name char(20)) engine=INNODB; mysql> show table status from auth where name='t3'\G
相关文章:
MySQL存储
目录 1. MySQL存储引擎概述 2. 存储引擎的作用 3.存储引擎类型 4. 查看支持的存储引擎 6. InnoDB存储引擎 7. MyISAM与InnoDB的区别 8. 存储引擎的选择 9. 修改默认存储引擎 1. MySQL存储引擎概述 在MySQL中,数据通过不同的技术存储在文件(或内存…...
手势传感器 - 从零开始认识各种传感器【第十八期】
手势传感器|从零开始认识各种传感器 1、什么是手势传感器 手势传感器是一种能够感知人类手势或动作的传感器。它可以捕捉、识别和解释人类的手部动作或姿势,并将其转换成电信号或数字信号,通过识别人体的手势动作来实现与电子设备的交互,如控…...
【未来餐饮】 配送设置
一、创建门店 关键信息 1. 门店名字要有辨识度,尽量不和其他客户重名 2. 地址要具体到门牌号 3. 定位要和上面的地址一致 可以复制地址搜索地图,然后选择位置 二、创建配送模板 新建模板 填写模板 命名模板,勾上真省钱,然后保…...
移动式气象设备:灵活应对,精准监测的气象先锋
在气象监测领域,随着科技的进步和需求的多样化,移动式气象设备逐渐崭露头角,成为现代气象观测中不可或缺的一部分。这些设备以其灵活性高、部署迅速、监测精准的特点,广泛应用于应急响应、农业生产、户外探险、科研考察等多个领域…...
【AI落地应用实战】DAMODEL深度学习平台部署+本地调用ChatGLM-6B解决方案
ChatGLM-6B是由清华大学和智谱AI开源的一款对话语言模型,基于 General Language Model (GLM)架构,具有 62亿参数。该模型凭借其强大的语言理解和生成能力、轻量级的参数量以及开源的特性,已经成为在学术界和工业界引起了广泛关注。 本篇将介…...
英伟达开始引领下一波浪潮:物理AI
这可能会是AI技术形态的一个转折点,大模型的下一个形态,不再是人和模型一轮一轮的即时问答了。 当地时间 7 月 29 日,在美国丹佛举行的第 51 届 SIGGRAPH 计算机图形学会议上,英伟达创始人、CEO 黄仁勋与 Meta 创始人、CEO 马克・扎克伯格进…...
SQLServer设置端口
在SQL Server中设置端口是一个涉及多个步骤的过程,这些步骤旨在确保数据库服务器能够在新指定的端口上安全、高效地运行。以下是对SQL Server设置端口的详细阐述,包括默认端口、更改端口的步骤、验证更改以及相关的安全考虑。 一、SQL Server默认端口 …...
诊断技巧分享 | 用WPS500压力传感器测试空调压力波形?
最近收到咨询,问我们WPS500压力传感器能不能测汽车的空调压力波形?如果可以的话,应该怎么测? 是可以的。WPS500压力传感器的最大测试压力是34.5 bar,匹配对应的管子的接头,可以测试空调的动态波形。 要做这…...
W1R3S靶机全通详细教程
文章目录 w1r3s主机发现主机扫描 端口扫描tcp端口扫描UDP扫描漏洞扫描 攻击面分析FTP渗透匿名登录 web渗透目录爆破 cuppa cms文件包含漏洞getshell提权 w1r3s 引言 近些日子看红笔大佬的靶机精讲视频时,他的一句话让我感受颇深,很多视频在讲解时&…...
GitHub Revert Merge Commit的现象观察和对PR的思考
文章目录 前言Pull Request 为什么会是这样?Pull Request Branch的差异 ?Two Dot Diff和Three Dot Diff 老生常谈: Merge 和 Rebasegit mergegit rebase Revert Main分支中的一个Merge Commit现象描述解决方案: Revert Feature分支中的一个Merge Commi…...
使用JavaFx Fxml笔记
使用JavaFx Fxml实现账号密码登录 HelloApplication.java:package com.example.dr295cmonth7;import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.geometry.Insets; import javafx.scene.Parent; import javafx.scene.Scene; i…...
友盟U-APM——优秀的前端性能监控工具
在数字化转型浪潮的推动下,移动应用已成为企业连接用户、驱动业务增长的核心载体。然而,随着应用复杂度的日益提升,用户对于应用性能稳定性的期待也水涨船高。面对应用崩溃、卡顿、加载缓慢等频发问题,如何确保应用的流畅运行,成为产研团队亟待解决的关键挑战。在此背景下,友盟…...
人工智能与机器学习原理精解【10】
文章目录 数值优化基础理论线性模型基本形式特性应用学习算法 向量输入的二次函数的凸性概述二次函数的一般形式凸函数的定义分析二次函数的凸性注意 详细解释向量输入的二次函数的凸性分析一、二次函数的一般形式二、凸函数的定义三、二次函数的Hessian矩阵四、判断二次函数的…...
TypeScript 简介
文档 typeScript官网中文文档:https://www.tslang.cn/index.html中文文档(简洁点):https://typescript.bootcss.comMDN 前言 JavaScript 引入编程社区已有 20 多年,如今已成为有史以来使用最广泛的跨平台语言之一。JavaScript 最初是一种用…...
什么是知识库?为什么我需要一个?
在互联网的历史上,知识库的定义已经多次改变。最初,它是一个术语,用于描述任何比常见关系“数据库”更先进的复杂数据存储系统。 现在,随着 SaaS 的出现,知识库一词有了更多不同的含义。 根据定义,知识库…...
MySQL学习(16):视图
视图是一种虚拟临时表,并不真正存储数据,它的作用就是方便用户查看实际表的内容或者部分内容 1.视图的使用语法 (1)创建 create view 视图名称 as select语句; #视图形成的虚拟表就来自于select语句所查询的实际表,…...
android13关机按钮 去掉长按事件 去掉启动到安全模式 删除关机长按
总纲 android13 rom 开发总纲说明 目录 1.前言 2.界面效果 3.问题分析 4.代码修改 5.编译替换运行 6.彩蛋 1.前言 在Android操作系统中,关机按钮通常具有多种功能,包括短按关机、长按启动语音助手或重启设备等。在某些情况下,用户或设备管理员可能希望自定义关机按…...
递归求数组和
...
MySQL数据库介绍
前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 一、数据库介绍 1、什么是数据库 数据库就是一个存放计算机数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织…...
向量数据库性能测试工具(VectorDBBench.com)性价比排名
排名 向量数据库(不同硬件配置) 价格/性能比 QP$(每百万次查询所花费的价格)中型数据集, OpenAI 无标量过滤 QP$(每百万次查询所花费的价格)中型数据集, OpenAI 低标量过滤 QP$(每百万次查询所花费的价格)中型数据集, OpenAI 高标量过滤 QP$(每百万次查询所花费的价…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...
CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...
怎么让Comfyui导出的图像不包含工作流信息,
为了数据安全,让Comfyui导出的图像不包含工作流信息,导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo(推荐) 在 save_images 方法中,删除或注释掉所有与 metadata …...
STM32---外部32.768K晶振(LSE)无法起振问题
晶振是否起振主要就检查两个1、晶振与MCU是否兼容;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容(CL)与匹配电容(CL1、CL2)的关系 2. 如何选择 CL1 和 CL…...
深度解析:etcd 在 Milvus 向量数据库中的关键作用
目录 🚀 深度解析:etcd 在 Milvus 向量数据库中的关键作用 💡 什么是 etcd? 🧠 Milvus 架构简介 📦 etcd 在 Milvus 中的核心作用 🔧 实际工作流程示意 ⚠️ 如果 etcd 出现问题会怎样&am…...
