数据库基本操作--------MySQL存储引擎

news2024/11/27 5:30:02

目录

一、存储引擎概念介绍

二、MySQL常用的存储引擎

1、MyISAM

2.1.1 MyISAM的特点

2.1.2 MyISAM 表支持 3 种不同的存储格式

2.1.3 MyISAM适用的生产场景

2、InnoDB

2.2.1 InnoDB特点

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

 四、查看表使用的存储引擎

方法一

 五、修改存储引擎

一、存储引擎概念介绍

MySQL中的数据用各种不同的技术存储在文件中,每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力,这些不同的技术以及配套的功能在MySQL中称为存储引擎
存储引擎是MySQL将数据存储在文件系统中的存储方式或者存储格式
MySQL数据库中的组件,负责执行实际的数据I/O操作
MySQL系统中,存储引擎处于文件系统之上,在数据保存到数据文件之前会传输到存储引擎,之后按照各个存储引擎的存储格式进行存储

二、MySQL常用的存储引擎

1、MyISAM

2.1.1 MyISAM的特点

MyISAM不支持事务,也不支持外键约束,只支持全文索引,数据文件和索引文件是分开保存的
访问速度快,对事务完整性没有要求

MyISAM 适合查询、插入为主的应用
MyISAM在磁盘上存储成三个文件,文件名和表名都相同,但是扩展名分别为:
.frm 文件存储表结构的定义
数据文件的扩展名为 .MYD (MYData)
索引文件的扩展名是 .MYI (MYIndex)

表级锁定形式,数据在更新时锁定整个表
数据库在读写过程中相互阻塞:
会在数据写入的过程阻塞用户数据的读取
也会在数据读取的过程中阻塞用户的数据写入
数据单独写入或读取,速度过程较快且占用资源相对少

2.1.2 MyISAM 表支持 3 种不同的存储格式

(1)静态(固定长度)表
静态表是默认的存储格式。静态表中的字段都是非可变字段,这样每个记录都是固定长度的,这种存储方式的优点是存储非常迅速,容易缓存,出现故障容易恢复;缺点是占用的空间通常比动态表多。

(2)动态表
动态表包含可变字段,记录不是固定长度的,这样存储的优点是占用空间较少,但是频繁的更新、删除记录会产生碎片,需要定期执行 OPTIMIZE TABLE 语句或 myisamchk -r 命令来改善性能,并且出现故障的时候恢复相对比较困难。

(3)压缩表
压缩表由 myisamchk 工具创建,占据非常小的空间,因为每条记录都是被单独压缩的,所以只有非常小的访问开支。

2.1.3 MyISAM适用的生产场景

公司业务不需要事务的支持
单方面读取或写入数据比较多的业务
MyISAM存储引擎数据读写都比较频繁场景不适合
使用读写并发访问相对较低的业务
数据修改相对较少的业务
对数据业务一致性要求不是非常高的业务
服务器硬件资源相对比较差

2、InnoDB

2.2.1 InnoDB特点

支持事务,支持4个事务隔离级别
MySQL从5.5.5版本开始,默认的存储引擎为 InnoDB

读写阻塞与事务隔离级别相关
能非常高效的缓存索引和数据
表与主键以簇的方式存储
支持分区、表空间,类似oracle数据库
支持外键约束,5.5前不支持全文索引,5.5后支持全文索引

对硬件资源要求还是比较高的场合
行级锁定,但是全 表扫描仍然会是表级锁定,如
update table set a=1 where user like ‘%lic%’;

InnoDB 中不保存表的行数,如 select count() from table; 时,InnoDB 需要扫描一遍整个表来计算有多少行,但是 MyISAM 只要简单的读出保存好的行数即可。需要注意的是,当 count()语句包含 where 条件时 MyISAM 也需要扫描整个表
对于自增长的字段,InnoDB 中必须包含只有该字段的索引,但是在 MyISAM 表中可以和其他字段一起建立组合索引

区别:
清空整个表时,InnoDB 是一行一行的删除,效率非常慢。MyISAM 则会重建表

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

show engines;

 四、查看表使用的存储引擎

方法一

show table status from 库名 where name='表名'\G;

例:show table status from SCHOOL where name='CLASS'\G;

 方法二:

use 库名;
show create table 表名;
例:use SCHOOL;
show create table CLASS;

 

 五、修改存储引擎

方法一:通过 alter table 修改

use 库名;
alter table 表名 engine=MyISAM;

例:use SCHOOL;
alter table CLASS engine=myisam;
show create table CLASS;

 方法二:通过修改 /etc/my.cnf 配置文件,指定默认存储引擎并重启服务

quit
vim /etc/my.cnf
[mysqld]
default-storage-engine=INNODB

systemctl restart mysqld.service
#注意:此方法只对修改了配置文件并重启mysql服务后新创建的表有效,已经存在的表不会有变更。
systemctl restart mysqld.service
修改完记得重启mysql服务

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

 方法三:通过 create table 创建表时指定存储引擎

use 库名;
create table 表名(字段1 数据类型,...) engine=MyISAM;

例:mysql -u root -p
use SCHOOL;
create table hellolic (name varchar(10),age char(4))engine=myisam;

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

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

相关文章

「网络编程」应用层协议_ HTTPS协议学习及原理理解

「前言」文章内容大致是应用层协议的HTTPS协议讲解,续上篇HTTP协议。 「归属专栏」网络编程 「主页链接」个人主页 「笔者」枫叶先生(fy) 目录 一、HTTPS协议介绍二、什么是"加密"三、为什么要加密四、常见的加密方式五、数据摘要 && 数据指纹六、…

直方图 直方图均衡化

直方图 直方图定义mask操作直方图均衡化均衡化效果自适应直方图均衡化 直方图定义 hist cv2.calcHist(images, channels, mask, histSize, ranges, …) # hist是一个256*1的矩阵,其中每一个值代表了一个灰度值对应的像素点数目 images:原图像格式为ui…

医学图像分割的三视图特征学习

文章目录 Triple-View Feature Learning for Medical Image Segmentation摘要本文方法实验结果 Triple-View Feature Learning for Medical Image Segmentation 摘要 深度学习模型,例如监督编码器-解码器风格的网络,在医学图像分割中表现出很好的性能&…

page_dewarp实现弯曲文本矫正

朋友们,如果你使用ocr,再识别的时候会遇到文本扭曲的问题,为了解决这个问题,需要进行弯曲文本矫正,这里推荐一个开源项目,可以使用上面的功能进行矫正,不过里面可能需要改动一些代码&#xff0c…

Python微服务架构设计使用asyncio提升性能

文章目录 1 引言2 微服务概念3 backend-for-frontend 模式4 实施产品列表 API4.1 实现基础服务4.2 实现BFF服务4.3 重试失败的请求4.4 断路器模式 5 总结 1 引言 许多 Web 应用程序都被构建为单体应用程序,单体应用程序通常是包含多个模块的大中型应用程序&#xf…

clickhouse优化使用clickhouse-keeper替代zookeeper

ClickHouse Keeper 是 ZooKeeper 的替代品,与 ZooKeeper 不同,ClickHouse Keeper 是用 C 编写的,并使用 RAFT 算法实现,该算法允许对读写具有线性化能力。 clikhouse-keeper目的在于替换zookeeper,使用clickhouse后&am…

【python】从Ensembl上,根据Array HumanMethylation450甲基化探针cg编号(比如cg13788592)获取位置

文章目录 1. 写在前面2. 手动查找和探索过程从UCSC查找从Ensembl查找 3. 代码实现 1. 写在前面 一篇专利 1 中提到多种癌种及对应的特异性CpG位点,想获取对应cg位点具体的位置或序列。专利中的一组CpG markers如下: 需求就是:将这些cg编号作…

Learning Enriched Features for Fast Image Restoration and Enhancement 论文阅读笔记

这是2022年TPAMI上发表的大名鼎鼎的MIRNetv2,是一个通用的图像修复和图像质量增强模型,核心是一个多尺度的网络 网络结构整体是残差的递归,不断把残差展开可以看到是一些残差块的堆叠。核心是多尺度的MRB。网络用的损失函数朴实无华&#x…

DuDuTalk:智能语音工牌如何赋能销售过程管理?

智能语音工牌是一种智能语音采集设备,配合ASR、NLP、语音分析、文本挖掘等AI技术,它可以帮助企业实现销售过程的监控、分析和改进。在这篇文章中,我们将探讨如何利用录音工牌实现销售过程管理,并介绍其重要性和应用。 1、什么是销…

3.9 JavaDoc生成文档

3.9 JavaDoc生成文档 javadoc命令是用来生成自己API文档的 javadoc是一种技术,他可以将我们的注释信息生成一个帮助文档 参数信息author 作者名version 版本号since 指明需要最早使用的JDK版本param 参数名return 返回值情况throws 异常抛出情况文档注释 /**回车…

接口测试-Jmeter响应数据结果保存到csv文件2种方式(详细)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 日常接口测试&…

阿里巴巴最新总结 Spring Security Oauth2.0 认证授权全彩笔记

Spring Security 是一个能够为基于 Spring 的企业应用系统提供声明式的安全访问控制解决方案的安全框架。由于它是 Spring 生态系统中的一员,因此它伴随着整个 Spring 生态系统不断修正、升级,在 Spring Boot 项目中加入 Spring Security 更是十分简单&a…

C语言进阶,第4节-自定义类型详解(结构体

一、 结构体 1. 结构的声明 //描述一个学生 struct Stu//结构体标签 {//成员变量char name[20];int age;char sex[5];char id[20]; }x; //x 为 struct Stu 类型的变量//匿名结构体类型 struct {int a;char c;float f; }a;struct {int a;char c;float f; }*pa;//省略了结构体…

集群基础1——集群概念、LVS负载均衡

文章目录 一、基本了解二、LVS负载均衡2.1 基本了解2.2 工作模式2.2.1 NAT模式2.2.2 DR模式2.2.3 LVS-TUN模式2.2.4 LVS-FULLNAT模式 三、调度器算法四、ipvsadm命令 一、基本了解 什么是集群? 多台服务器做同一件事情。 集群扩展方式: scale up&#xf…

OJ练习第136题——在二叉树中分配硬币

在二叉树中分配硬币 力扣链接:979. 在二叉树中分配硬币 题目描述 给定一个有 N 个结点的二叉树的根结点 root,树中的每个结点上都对应有 node.val 枚硬币,并且总共有 N 枚硬币。 在一次移动中,我们可以选择两个相邻的结点&…

java导出pdf(纯代码实现)

java导出pdf 在项目开发中,产品的需求越来越奇葩啦,开始文件下载都是下载为excel的,做着做着需求竟然变了,要求能导出pdf。导出pdf倒也不是特别大的问题关键就是麻烦。 导出pdf我知道的一共有3中方法: 方法一&#xff…

Linux系统ubuntu22.04安装最新版的gcc13.1.0编译器,支持c++20、23

Linux系统ubuntu22.04安装最新版的gcc13.1.0编译器,支持c20、23 本文全程实操,上机验证通过。 首先查看gcc版本,以确保系统内有gcc,如果没有需要安装sudo apt install gcc 去GUN官网查看最新的gcc版本Index of /gnu/gcc 下载最…

若依添加router-view,使用详细(若依后台管理系统添加router-view)

简介:大家都知道若依后台管理系统,它是一款基于SpringBoot,Spring Security,JWT,Vue & Element 的开发的企业级后台管理系统,可以用于管理企业网站、电子商务平台、移动应用等各种应用系统,…

Shell第四章——函数

命令序列按照格式写在一起 核心:财富使用的命令序列 使用函数可以避免代码重复,函数可以将大的工程分割成若干小的功能模块,提高代码的可读性 第一种写法 第二种写法 return:表示退出函数并返回一个退出值,用…

Android init 进程启动相关分析

目录 1.概述: 2.架构 2.1 Init进程如何被启动? 2.2Init进程启动后,做了哪些事? 3.kernel启动init进程 源码分析 3.1 kernel_init 3.2 do_basic_setup 4. Init 进程启动源码分析 4.1 Init 进程入口 4.2 ueventd_main …