【MySQL】常用存储引擎,数据库管理,数据表管理,数据库账户管理

目录

一 常用的数据引擎(4)

1.1 InnoDB存储引擎

1.2 MyISAM存储引擎

1.3 Memory存储引擎

1.4 ARCHIVE存储引擎

二 数据库管理

2.1 元数据库概念与分类

2.2 相关操作命令

三 数据表的管理

3.1 三大范式

3.2 数据类型

四 数据库账户管理

五 思维导图 


一 常用的数据引擎(4)

        数据库存储引擎是数据库底层软件组织,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引机制、锁定水平等功能。不同的存储引擎,都有其特定的功能及特定应用场景

可以进入Navicat中查看存储引擎

存储引擎查看命令: SHOW ENGINES

字段说明: default 为默认存储引擎。 YES表示可以使用。NO表示不能使用

1.1 InnoDB存储引擎

        InnoDB是事务性数据库首选引擎,也叫默认存储引擎。InnoDB从Mysql5.5.5开始就成为数据默认的存储引擎,是MySQL8.0之后最重要,使用最广泛的存储引擎。支持事务安全(ACID),支持行锁定和外键

InnoDB主要的特性:

  • 存储限制:64TG
  • 速度:删除与修改效率更高
  • 事务支持:支持 ACID事务,这意味着它可以提供高可靠性和数据完整性
  • 行级锁定:使用行级锁定来允许多个事务并发访问数据,这有助于提高并发性能。
  • 外键约束:支持外键约束,这有助于保持数据的一致性和完整性。
  • MVCC(多版本并发控制):InnoDB使用MVCC来支持高并发访问,同时减少锁的竞争。
  • 聚集索引:InnoDB采用聚集索引的架构,这意味着数据实际上是存储在主键索引中。这有助于提高某些查询的性能,但也意味着你不能更改一个已经存在的表的主键。
  • 数据压缩:InnoDB支持数据压缩,这有助于节省存储空间并提高某些查询的性能。
  • 崩溃恢复:有一个日志文件,可以用来恢复崩溃后可能丢失的数据。
  • 支持多种存储引擎:虽然InnoDB是MySQL的默认存储引擎,但MySQL也支持其他存储引擎,如MyISAM和Memory。这意味着你可以根据特定的使用情况选择最合适的存储引擎。
  • 支持多种隔离级别:InnoDB支持SQL标准的四种隔离级别(READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ和SERIALIZABLE)。
  • 自动提交:在InnoDB中,如果没有明确指定,事务会自动提交。

1.2 MyISAM存储引擎

          MyISAM基于ISAM存储引擎,并对其进行扩展。在 Web,数据仓储和其他应用环境使用的存储引擎较多。MyISAM拥有较高的插入、查询速度,但不支持事务和外键

MyISAM的主要特性:

  • 不支持事务
  • 存储限制:256TG
  • 表级锁定:在MySQL中,MyISAM存储引擎中,当发生数据更新时,会锁定整个表,以防止其他会话对该表中数据的同时修改所致的混乱。这样做可以使得操作简单,但是会减少并发量
  • 读写相互阻塞:在MyISAM类型表中,即不可以在向数据表中写入数据的同时另一个会话也向该表写入数据,也不允许其他的会话读取该表中的数据。只允许多个会话同时读取该数据表中的数据
  • 只会缓存索引,不会缓存数据:缓存,是指数据库在访问磁盘数据时,将更多的数据读取进入内存,这样可以使得当访问这些数据时,直接从内存中读取而不是再次访问硬盘。MyISAM可以通过key_buffer_size缓存索引,以减少磁盘I/O,提升访问性能。MyISAM数据表并不会缓存数据。
  • 读取速度较快,占用资源较少;
  • 不支持外键约束;
  • 支持全文索引;

MyISAM适用场景:

  • 数据字典,系统参数
  • 不需要事务支持的场景
  • 读取操作比较多,写入操作较少(很少修改经常查询的数据)
  • 数据并发较低的场景;
  • 硬件条件比较差的场景;
  • 在配置数据库读写分离场景下,从库可以使用MyISAM索引

1.3 Memory存储引擎

      MySQL中Memory存储引擎是一个置于内存中的表,其采用的存储介质是内存。响应速度很快。但是当MySQL守护进程崩溃的时候数据会丢失。Memory存储引擎是存储的数据类型是长度不变的类型,blob/text类的数据类型不可用

Memory的主要特性:

  • 存储瞬时非关键数据;
  • 存储限制:取决于RAM(随机存储器)’
  • 不支持事务
  • 内存存储,可实现快速访问和低延迟
  • 只读或读取是主要数据访问模式:每个基于MEMORY存储引擎的表实际对应一个磁盘文件。该文件的文件名与表名相同,类型为frm类型。该文件中只存储表的结构。而其数据文件,都是存储在内存中,这样有利于数据的快速处理,提高整个表的效率。值得注意的是,服务器需要有足够的内存来维持MEMORY存储引擎的表的使用。如果不需要了,可以释放内存,甚至删除不需要的表。
  • 支持数据类型有限:不支持Text和Blob数据类型,对于字符串类型的数据,只支持固定长度的行,VARCHAR会被自动存储为CHAR类型。
  • 支持表级锁:在访问量比较大时,表级锁会成为MEMORY存储引擎的瓶颈查询中存在临时表且表中有BLOB、TEXT类型的字段,那么在这个临时表会自动转化为MyISAM类型的表。性能会急剧降低
  • 默认索引使用Hash索引
  • 内存表特别大时,自动转换为MyISAM类型实体表

应用场景:一般存储在视图和缓存的数据

1.4 ARCHIVE存储引擎

         ARCHIVE存储引擎主要用于存储大量的归档数据,如历史数据或安全审计信息

ARCHIVE的主要特性:

不支持事务:ARCHIVE不支持事务处理,这意味着它不能提供ACID事务的保证

不支持索引(自增ID列除外)

高压缩率:ARCHIVE存储引擎采用了较高的压缩比,可以大大减少存储空间的需求,使大量历史数据得以高效地存储。

只支持INSERT和SELECT操作:ARCHIVE不支持DELETE、UPDATE等其他操作,这有助于保持数据的一致性和完整性。

行级锁定机制:ARCHIVE使用行级锁定来允许多个事务并发访问数据,提高并发性能。

适用于历史数据存储:由于其高压缩率和只支持INSERT和SELECT操作的特性,ARCHIVE非常适合存储大量的历史数据或归档信息。

使用场景:只允许插入和查询,不允许删除和修改,压缩存储节约空间,如日志记录、审计跟踪等。

二 数据库管理

2.1 元数据库概念与分类

     简单来说就是在创建一个数据库的时候自身会创建本身会带的数据库,主要有三种数据库

information_schema元数据库:信息数据库,保存mysql所维护的其他数据库信息,包含了关于    数据库实例中所有数据库、表、列、索引、约束等的结构信息

mysql元数据库:核心数据库,user,db,tables_priv,columns_priv这些表中,主要负责存储数据库的用户,权限设置,关键字等

user表:用户管理权限

db表:数据库层权限

tables_priv表:表层权限

columns_priv表:字段层权限

performance_schema元数据库:mysql监控数据的存放

2.2 相关操作命令

use 数据库名  (使用数据库)

create database 数据库名  (创建数据库)

show databases   (查看所有数据库)

drop database 数据库名  (删除数据库)

三 数据表的管理

3.1 三大范式

第一范式:列不可再分(原子性)

     属性不可分割,即每个属性都是不可分割的原子项。(实体的属性即表中的列)

第二范式:主键约束

       满足第一范式;且不存在部分依赖,即非主属性必须完全依赖于主属性。(主属性即主键;完全依赖是针对于联合主键的情况,非主键列不能只依赖于主键的一部分)

第三范式:外键约束

          满足第二范式;且不存在传递依赖,即非主属性不能与非主属性之间有依赖关系,非主属性必须直接依赖于主属性,不能间接依赖主属性。(A -> B, B ->C, A -> C)

3.2 数据类型

整数:

           tinyint 8位(-128~127)

           smallint 16位(-32768~ 32767)

           mediumint 24位 (-8388608~ 8388607)

           int 32位  大约正负21亿

           bigint 64位

实数(带有小数点):

   float 4个字节

   double 8个字节

   ecimal 最多允许65个数字

字符串:

CHAR:

定长字符串。长度范围是 0 到 255 个字符。
如果存储的字符串长度小于定义的长度,MySQL会用空格填充剩余的空间


VARCHAR:

变长字符串。长度范围是 0 到 65,535 个字符。
只存储实际需要的字符,不会用空格填充。
频繁修改且字符串变化长度大时,可能会出现页分裂

text&blob  

text存储字符数据:tinytext,smalltext,mediumtext,text,longtext

blob存储二进制数据:  tinyblob,smallblob,mediumbolb,blob,longblob

日期时间:

 datetime:精度秒 8个字节的存储空间   范围在1001年-9999年

timestamp: 1970.1.1后的秒数  占用4个字节空间    1970-2038年  时区有关

 date: yyyy-MM-dd

 time:  HH:mm:ss

选择标识符:

① 用来进行关联操作

② 在其他表作为外键

③ 整形通常是标识列最好选择

④ 相关的表中使用相同的数据类型

⑤ 避免字符串作为标识列,不然insert与select慢影响效率

四 数据库账户管理

用户的管理权限

SELECT user,`Host` FROM `user` 

    

create user Bing identified by'123'

grant SELECT on his.t_book to Bing@'%';

grant UPDATE on his.t_book to Bing@'%';

revoke UPDATE on his.t_book from Bing@'%';

show grants for 'Bing'@'%';

show databases

图解命令意思:

五 思维导图 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探索AliExpress商品详情API:使用与解析

一、引言 AliExpress是阿里巴巴旗下全球领先的B2C在线交易平台,为全球数亿消费者提供安全、便捷、高效的购物体验。随着电子商务的快速发展,获取商品详情成为了电商应用程序中的一项重要功能。AliExpress商品详情API(aliexpress.item_get&am…

Vue中的选项式 API 和组合式 API,两者有什么区别

Vue中的选项式 API(Option API)和组合式 API(Composition API)是两种不同的组件编写方式,它们各有特点和适用场景: 选项式 API(Option API): 传统方法:Vue最初的编程范式…

redis服务迁移数据工具--RDM

一、背景: 在日常的运维工作经常遇见各种数据迁移工作,例如mysql数据库迁移、redis数据库迁移、minio数据迁移等等工作。这里介绍一下redis数据库的迁移过程。 二、迁移思路: redis服务/集群的数据迁移思路是需要新建一个配置、密码一样的re…

【字典树Trie】LeetCode-139. 单词拆分

139. 单词拆分。 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。 示例 1: 输入: s "leetcode&q…

openGauss学习笔记-185 openGauss 数据库运维-升级-提交升级/升级版本回退/异常处理

文章目录 openGauss学习笔记-185 openGauss 数据库运维-升级-提交升级/升级版本回退/异常处理185.1 提交升级操作步骤 185.2 升级版本回滚操作步骤 185.3 异常处理升级问题FAQ openGauss学习笔记-185 openGauss 数据库运维-升级-提交升级/升级版本回退/异常处理 185.1 提交升级…

grep笔记240103

常用选项:: -i:忽略大小写进行匹配。 -v:反向匹配,只打印不匹配的行。 -n:显示匹配行的行号。 -r:递归查找子目录中的文件。 -l:只打印匹配的文件名。 -c:只打印匹配的行…

rk3588中编译带有ffmpeg的opencv

有朋友有工程需要,将视频写成mp4,当然最简单的方法当然是使用opencv的命令 cv::VideoWriter writer;bool bRet writer.open("./out.mp4", cv::VideoWriter::fourcc(m, p, 4, v), 15, cv::Size(640, 512), 1); 但是奈何很难编译成功&#xff…

NGUI基础-图集制作(保姆级教程)

目录 图集是什么 如何打开图集制作工具 制作步骤 图集的三个关键配置 相关参数介绍 Atlas Material Texture Padding Tim Alpha PMA shader Unity Packer TrueColor Auto-upgrade Force Square Pre-processor 图集是什么 Unity图集(Sprite Atlas&…

AI:109-基于机器学习的文本图像关联分析

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的关键代码,详细讲解供…

SecOC中新鲜度值和MAC都按照完整的值来生成,但是在发送和认证的时候只会截取一部分。这边截取的部分一般取多长?由什么参数设定?

新鲜度值(Freshness Value, FV)和消息验证码(Message Authentication Code, MAC)是SecOC协议中用于保证数据的真实性和新鲜度的重要信息。它们的长度取决于不同的因素,如加密算法、安全级别、通信带宽等。 一般来说,FV和MAC的长度越长,安全性越高,但也会占用更多的通信…

ROS Gazebo的基本使用

Gazebo 提供了一个实时的三维虚拟环境,用于模拟各种复杂的真实世界条件,包括光照、地形、物理碰撞以及传感器模型(如激光雷达、摄像头等)。通过 ROS 和 Gazebo 的结合,开发者可以在无需实际硬件的情况下设计、测试和验…

2024,这将是量子计算的真正挑战

2023年,一项项量子计算纪录被打破。 谷歌量子AI团队证明了将多个量子比特分组合成为一个逻辑量子比特的纠错方法可以提供更低的容错率。以往的纠错研究随着比特数的增加,错误率会提高,都是“越纠越错”,而这次谷歌首次实现了“越纠…

低压线性恒流驱动芯片的产品特性与应用领域

低压线性恒流驱动芯片是一种具有多种产品特性的电子器件。 首先,它具有广泛的输入电压范围,可以适用于5V至80V的输入电压,使得其在不同的电源环境下都能正常工作。 低压线性恒流驱动芯片的产品特性与应用领域 其次,该芯片的输出…

【小沐学NLP】Python实现TF-IDF算法(nltk、sklearn、jieba)

文章目录 1、简介1.1 TF1.2 IDF1.3 TF-IDF2.1 TF-IDF(sklearn)2.2 TF-IDF(nltk)2.3 TF-IDF(Jieba)2.4 TF-IDF(python) 结语 1、简介 TF-IDF(term frequency–inverse document frequency)是一种用于信息检索与数据挖掘的常用加权技术。TF是词频(Term Fr…

AI面板识别 - 华为OD统一考试

OD统一考试 (B卷) 分值: 100分 题解: Java / Python / C++ 题目描述 AI识别到面板上有N(1 ≤ N ≤ 100)个指示灯,灯大小一样,任意两个之间无重叠。 由于AI识别误差,每次别到的指示灯位置可能有差异,以4个坐标值描述AI识别的指示灯的大小和位置(左上角x1,y1,右下角x2…

跨年烟花-Html5实现_附完整源码【可直接运行】

文章目录 🍻前言🔸目录结构⚫完整源码🔵源码分析💮注意事项 💈总结 🍻前言 随着科技的进步和互联网的普及,人们对于跨年庆祝的方式也在不断变化。传统的烟花燃放虽然美丽,但存在环境…

C++_模板

目录 1、函数模板 1.2 模板原理 2、多个模板参数 3、模板的显示实例化 4、模板的匹配 5、类模板 结语: 前言: 在C中,模板分为函数模板和类模板,而模板的作用就是避免了重复的工作,把原本是程序员要做的重复工作…

Element|InfiniteScroll 无限滚动组件的具体使用方法

目录 InfiniteScroll 无限滚动 基本用法 详细说明 v-infinite-scroll 指令 infinite-scroll-disabled 属性 infinite-scroll-distance 属性 总结 需求背景 : 项目统计管理列表页面,数据量过多时在 IE 浏览器上面会加载异常缓慢,导致刚…

A股贵如金?Python量化验证AH股溢价效应,跟着买15年18倍?

2023年9月15日,A股中国人寿的收盘价为35.64元人民币,同一天港股的价格却仅为12.1元港币,折合人民币11.1元,两者相去甚远。 但深究后会发现,两个股票代表的是同一家公司。 中国人寿在香港和上海都发行了股票&#xff0…

【AI】LoFTR图像匹配算法源码解析

0.LoFTR简介 Local Feature Transformers (LoFTR)是一种Detector-free的局部特征匹配方法,使用了具有自注意层和互注意层的Transformer模块来处理从卷积网络中提取的密集局部特征:首先在低特征分辨率(图像维度的1/8&a…