MySQL原理(二)存储引擎(1)概述

news2024/11/18 8:50:50

一、存储引擎介绍

1、概念:

(1)MySQL中的数据用各种不下同的技术存储在文件中,每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力,这些不同的技术以及配套的功能在MySQL中称为存储引擎。

(2)存储引擎是MySQL将数据存储在文件系统中的存储方式或者存储格式。

(3)存储引擎是MySQL数据库中的组件,负责执行实际的数据I/O操作。

(4)MySQL系统中,存储引擎处于文件系统之上,在数据保存到数据文件之前会传输到存储引擎,之后按照各个存储引擎的存储格式进行存储。

2、mysql存储引擎

(1) MYISAM:

全表锁,拥有较高的执行速度,不支持事务,不支持外键,并发性能差,占用空间相对较小,对事务完整性没有要求,以select、insert为主的应用基本上可以使用这引擎;

(2)Innodb:

行级锁,提供了具有提交、回滚和崩溃回复能力的事务安全,支持自动增长列,支持外键约束,并发能力强,占用空间是MYISAM的2.5倍,处理效率相对会差一些.

(3)Memory

全表锁,存储在内容中,速度快,但会占用和数据量成正比的内存空间且数据在mysql重启时会丢失,默认使用HASH索引,检索效率非常高,但不适用于精确查找,主要用于那些内容变化不频繁的代码表

(4)MERGE

是一组MYISAM表的组合

其中,最常用的是MylSAM和InnoDB。

二、查看和修改存储引擎

注意:一个表只能使用一个存储引擎,一个库中不同的表可以使用不同的存储引擎。

1、查看存储引擎
1.1、查看系统支持的存储引擎

1.2、查看数据表使用的存储引擎
SHOW TABLE STATUS [FROM db_name] [LIKE 'pattern']

db_name是数据库名,pattern是模式匹配模式,可以省略。执行上述语句后,会返回所有表的状态信息,包括表名、存储引擎、行数、平均行长度、数据大小等,其中存储引擎信息在“Engine”列中显示。

2、修改存储引擎

有几下几种方法:

(1)create table 创建表时指定存储引擎
create table 表名(字段1 数据类型,...)  engine=存储引擎名称;

CREATE TABLE `t_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_nick_name` varchar(255) DEFAULT NULL,
  `user_password` varchar(255) DEFAULT NULL,
  `is_delete` tinyint(4) DEFAULT NULL,
  `user_name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;

(2)alter table 修改当前数据表使用的存储引擎
alter table 表名 engine=存储引擎名称;

注意:因为MyISAM不支持外键约束,如果数据表设置了外键,则无法修改为MyISAM。

(3)修改配置文件

指定默认存储引擎,创建数据表时如果没有指定存储引擎,则会使用默认存储引擎。

[mysqld]  default-storage-engine=InnoDB  
#修改这一行,指定默认存储引擎为InnoDB  

注意:此方法只对修改配置文件并重启mysql服务之后新创建的表有效,已经存在的表不会有变更。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1419436.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[GN] 设计模式——面向对象设计原则概述

文章目录 面向对象设计原则概述单一职责原则开闭原则里氏代换原则依赖倒转原则接口隔离原则合成复用原则迪米特法则 总结 提示:以下是本篇文章正文内容,下面案例可供参考 面向对象设计原则概述 单一职责原则 一个类只负责一个功能领域中的相应职责 类…

C# 使用WMI监听进程的启动和关闭

写在前面 Windows Management Instrumentation(WMI)是用于管理基于 Windows 操作系统的数据和操作的基础结构。具体的API可以查看 WMI编程手册。 WMIC 是WMI的命令行管理工具,使用 WMIC,不但可以管理本地计算机,还可…

知识宣传手册该怎么制作?

​制作知识宣传手册是一个很好的方式来传播知识,提高公众对特定主题的了解。它们不仅能帮助我们传播重要信息,还能激发人们的求知欲,推动社会的进步。那么,如何制作一份引人入胜的知识宣传手册呢? 今天教大家一个很简单…

【云原生】docker-compose单机容器集群编排工具

目录 一、docker-compose容器编排的简介 二、docker-compose的使用 1、docker-compose的安装 2、docker-compose的配置模板文件yaml文件的编写 (1)布尔值类型 (2)字符串类型 (3)一个key有多个值 &am…

[React源码解析] Fiber

在React15及以前, Reconciler采用递归的方式创建虚拟Dom, 但是递归过程不可以中断, 如果组件的层级比较深的话, 递归会占用线程很多时间, 那么会造成卡顿。 为了解决这个问题, React16将递归的无法中断的更新重构为异步的可中断更新, Fiber架构诞生。 文章目录 1.Fiber的结构2…

Matlab基础语法

基础语法 %% Matlab基本的小常识 % (1)在每一行的语句后面加上分号(一定要是英文的哦;中文的长这个样子;)表示不显示运行结果 a 3; a 5% (2)多行注释:选中要注释的若干语句,快捷键CtrlR % a 3; % a 5% (3)取消注释:选中要取消注释的语句,快捷键CtrlT % 我想要取…

python字典JSON 和csv文件

JSON与Python字典 Python中的字典与JSON非常类似而且支持嵌套结构。Json通过key取值的过程和python字典通过索引取值过程完全一致。JavaScript数据类型(值)对应的Python数据类型(值) JSONPythonobjectdictarraylist/tuplestring…

链表——超详细

一、无头单向非循环链表 1.结构(两个部分): typedef int SLTDataType; typedef struct SListNode {SLTDataType data;//数据域struct SListNode* next;//指针域 }SLNode; 它只有一个数字域和一个指针域,里面数据域就是所存放的…

备战蓝桥杯---数据结构与STL应用(基础实战篇1)

话不多说,直接上题: 当然我们可以用队列,但是其插入复杂度为N,总的复杂度为n^2,肯定会超时,于是我们可以用链表来写,同时把其存在数组中,这样节点的访问复杂度也为o(1).下面是AC代码: 下面我们来…

Flutter 高级动画技术综合指南

在动画领域,Flutter 提供了一系列功能,包括基于物理的动画,可以模拟真实世界的动态,在应用程序中创建更逼真和自然的运动。 本文将深入研究 Flutter 动画,探索各种类型,并演示如何在项目中实现它们。 Flu…

Hana SQL+正则表达式

目录 一、Pre 前言 二、知识点拆解 1)case when…then…else 2)json_value 函数 拓展资料 3)CAST 函数 拓展资料 4) ROUND 函数 5)occurences_regexpr 函数 拓展资料 6)正则表达式 拓展资料 三、整合分析…

【openGauss】openEuler 22.03 LTS 安装了openGauss数据库后yum不可用

问题描述 尝试使用yum时出现依赖包缺少依赖版本的问题,主要问题时在安装openGauss时,通过脚本创建omm用户和dbgrp组导致的,如果用户和组是提前创建好的就不会出现这样的问题 报错:version GLIBCXX_3.4.26’ not found 报错信息 …

计算机视觉:高级图像处理,满足您的所有需求。

一、说明 特征提取是机器学习管道中的关键步骤,可增强模型在不同数据集上的泛化和良好表现能力。特征提取方法的选择取决于数据的特征和机器学习任务的具体要求。本文揭示图像处理的数学原理,实现增强的计算机视觉 二、关于计算机视觉的普遍问题 在计算机…

DL/T645、IEC104转MQTT网关BE113

随着电力系统信息化建设和数字化转型的进程不断加速,对电力能源的智能化需求也日趋增强。健全稳定的智慧电力系统能够为工业生产、基础设施建设以及国防建设提供稳定的能源支持。在此背景下,高性能的工业电力数据传输解决方案——协议转换网关应运而生&a…

【动态规划】【图论】【C++算法】1575统计所有可行路径

作者推荐 【动态规划】【字符串】【行程码】1531. 压缩字符串 本文涉及知识点 动态规划汇总 图论 LeetCode1575统计所有可行路径 给你一个 互不相同 的整数数组,其中 locations[i] 表示第 i 个城市的位置。同时给你 start,finish 和 fuel 分别表示出…

github添加 SSH 密钥

1 打开终端 输入 ssh-keygen -t rsa -b 4096 -C "github邮箱地址"如果不需要密码可以一路回车 出现这个页面就是生存成功了 open ~/.ssh // 打开.ssh 找到id_rsa.pub复制出内容新建ssh密钥输入内容,保存即可

JavaWeb中的Filter(过滤器)和 Listener(监听器)

提示:这两个东西听起来似乎很难,实际上是非常简单的,按照要求写就行了,一定不要被新名词给吓到了。 JavaWeb中的Filter(过滤器) 一、Filter(过滤器)1.如何编写 Filter2.Filter 中的细…

webassembly003 TTS BARK.CPP

TTS task TTS(Text-to-Speech)任务是一种自然语言处理(NLP)任务,其中模型的目标是将输入的文本转换为声音,实现自动语音合成。具体来说,模型需要理解输入的文本并生成对应的语音输出&#xff0…

Day01-变量和数据类型课后练习-参考答案

文章目录 1、输出你最想说的一句话!2、定义所有基本数据类型的变量和字符串变量3、用合适类型的变量存储个人信息并输出4、定义圆周率PI5、简答题 1、输出你最想说的一句话! 编写步骤: 定义类 Homework1,例如:Homewo…

85 C++对象模型探索。数据语义学 - 继承多个类,且是虚基类的数据内存模型分析。虚基类表,虚基类表指针

前面我们分析了 继承多个类的情况。上一次分析的这样的情况: 今天看虚基类。先复习一下虚基类:类似下面这样的图 复习虚基类可以解决的问题: 在这之前先要复习一下多继承同一个爷爷类时带来的问题 空间问题 效率问题 二义性问题 //虚基类问…