【数据库】MySQL数据库存储引擎、数据库管理和数据库账号管理

【数据库】MySQL数据库存储引擎、数据库管理和数据库账号管理

  • 一 常用的数据引擎
    • 1.1 InnoDB存储引擎
    • 1.2 MyISAM存储引擎
    • 1.3 Memory存储引擎
    • 1.4 ARCHIVE存储引擎
  • 二 数据库管理
    • 2.1 元数据库概念与分类
    • 2.2 相关操作命令
  • 三 数据表的管理
  • 四 数据库账户管理

一 常用的数据引擎

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

可以进入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拥有较高的插入、查询速度,但不支持事务和外键

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

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

1.3 Memory存储引擎

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

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

1.4 ARCHIVE存储引擎

ARCHIVE存储引擎主要用于存储大量的归档数据,如历史数据或安全审计信息
ARCHIVE 存储引擎是 MySQL 数据库中的一种特殊的存储引擎,它主要用于在需要大量存储数据,但对查询性能要求不高的场景。以下是关于 ARCHIVE 存储引擎的一些重要特点和使用注意事项:

数据压缩:ARCHIVE 存储引擎以高度压缩的方式存储数据,因此非常适合存储大量历史性数据,例如日志文件或归档数据。数据压缩可以显著减小存储空间的占用。

只支持INSERT和SELECT操作:ARCHIVE 存储引擎仅支持 INSERT 和 SELECT 操作,不支持 UPDATE 和 DELETE 操作。这是因为 ARCHIVE 存储引擎的设计目标是为了长时间保存大量历史数据,而不是频繁更新或删除数据。

不支持索引:ARCHIVE 存储引擎不支持索引,这意味着在使用该存储引擎的表上不能创建索引。因此,对于需要频繁查询的场景,不适合选择 ARCHIVE 存储引擎。

表级锁定:ARCHIVE 存储引擎使用表级锁定,而不是行级锁定。这可能导致在高并发环境中的写入冲突。

不支持事务:ARCHIVE 存储引擎不支持事务。因此,如果你的应用程序要求事务支持,不应选择 ARCHIVE 存储引擎。

适用场景:ARCHIVE 存储引擎适用于只追加数据、很少进行更新和删除操作,并且对查询性能要求不高的场景。典型的应用场景包括日志表、归档表等。

要在 MySQL 中使用 ARCHIVE 存储引擎,你可以在创建表时指定存储引擎,例如:
需要注意的是,使用 ARCHIVE 存储引擎时,你应该明确了解它的限制和适用场景,确保选择合适的存储引擎来满足你的需求。

二 数据库管理

2.1 元数据库概念与分类

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

mysql 数据库:这是存储 MySQL 管理系统自身数据的数据库。它包含用户帐户、权限和其他系统级元数据。在这个数据库中,有一些关键的系统表格,例如 user、db、tables_priv、columns_priv 等,用于存储用户信息、权限和数据库访问控制等。
在这里插入图片描述

information_schema 数据库:这个数据库是 MySQL 数据库服务器提供的元数据信息的一个虚拟数据库。它不存储实际数据,而是提供了关于数据库对象(如表、列、权限等)的元数据信息,供用户查询和检索。information_schema 数据库中的表格包含有关数据库服务器的信息,如 SCHEMATA、TABLES、COLUMNS、STATISTICS 等。
在这里插入图片描述

performance_schema 数据库:这是 MySQL 5.5及更新版本引入的数据库,用于提供关于数据库服务器性能的详细信息。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:

这是一个查询语句,目的是从 MySQL 数据库的 user 表中选择 USER 和 Host 列的数据,显示了数据库中所有用户的用户名和主机信息。
CREATE USER niyin IDENTIFIED BY ‘123’:

这是一个创建用户的语句。它创建了一个名为 niyin 的用户,该用户的密码是 ‘123’。
GRANT SELECT ON db_oa.iswel TO niyin@‘%’:

这是一个授权语句,授予了用户 niyin 对数据库 db_oa 中的表 iswel 执行 SELECT 操作的权限。niyin@‘%’ 表示该授权适用于任何主机。
GRANT UPDATE ON db_oa.iswel TO niyin@‘%’:

这是另一个授权语句,授予了用户 niyin 对数据库 db_oa 中的表 iswel 执行 UPDATE 操作的权限。同样,niyin@‘%’ 表示该授权适用于任何主机。
REVOKE UPDATE ON db_oa.iswel FROM niyin@‘%’:

这是一个回收权限的语句,从用户 niyin 中撤销对数据库 db_oa 中表 iswel 的 UPDATE 权限。同样,niyin@‘%’ 表示该回收适用于任何主机。
SHOW GRANTS FOR ‘niyin’@‘%’:

这个语句用于显示用户 niyin 在任何主机上的授予权限。它将列出用户 niyin 的当前权限设置。
SHOW DATABASES:

这是一个显示当前 MySQL 服务器上所有数据库的语句。它将返回一个包含数据库列表的结果集。
请注意,SQL 语句需要在正确的上下文中执行,而且执行这些语句需要相应的权限。确保你对 MySQL 数据库有足够的权限执行这些操作。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

清风数学建模笔记-多分类-fisher线性判别分析

内容:Fisher线性判别分析 一.介绍: 1.给定的训练姐,设法投影到一维的直线上,使得同类样例的投影点尽可能接近和密集,异类投影点尽可能远离。 2.如何同类尽可能接近:方差越小 3.如何异类尽可能远离&#…

阿里云2核2G3M服务器能放几个网站?有限制吗?

阿里云2核2g3m服务器可以放几个网站?12个网站,阿里云服务器网的2核2G服务器上安装了12个网站,甚至还可以更多,具体放几个网站取决于网站的访客数量,像阿里云服务器网aliyunfuwuqi.com小编的网站日访问量都很少&#xf…

获取网页信息

每次copy & paste总是很麻烦,现在有点问题,先记录下来。 需求:获取url 里Feature list,并输出表格形式 可以用Convert curl commands to code:得到get请求的header,cookie等 import requests import…

Jmeter二次开发实操问题汇总(JDK问题,jar包问题)

前提 之前写过一篇文章:https://qa-lsq.blog.csdn.net/article/details/119782694 只是简单尝试了一下生成一个随机手机号码。 但是如果在工作中一个实际场景要用的二次开发,可能会遇到一些问题。 比如这样一个场景: Mobile或者前端调用部分…

【动态规划】LeetCode-10. 正则表达式匹配

10. 正则表达式匹配。 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。 ‘.’ 匹配任意单个字符‘*’ 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。 …

conda: error: argument COMMAND: invalid choice: ‘activate‘

1.问题 2.解决方法 1.寻找基本路径 conda info | grep -i base environment2.更新资源 source /Users/suhang/miniconda3/etc/profile.d/conda.sh3.重新运行命令 conda activate chatglm参考图:

UI5与后端的文件交互(一)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、RAP的开发1. 创建表格2. 创建CDS Entity3. 创建BDEF4. 创建implementation class5. 创建Service Definition和Binding6. 测试API 二、创建UI5 Project1. 使…

jsp+ssm+mysql实现的酒店预定管理系统项目----计算机毕业设计

项目介绍 jspssm框架(spring、springMVC、mybaits)实现的酒店预定管理系统的源码和视频开发教程。本系统分前台和后台管理两部分,前台实现了用户登录注册、查看房型信息、预定房间、提交订单、查看个人订单、修改个人资料等,后台…

打造高效会员卡营销策划方案,提升门店业绩

在激烈的行业竞争中,如何有效提升店铺的业绩,提高客户粘性和消费频次呢?答案可能就在你手中——那就是有效的会员卡营销策略。下面给大家探讨如何设计会员卡营销策划方案,从而增加客户的忠诚度,并推动销售增长。以目前…

亚信安慧AntDB数据库引领数字时代:数字驱动创新峰会主旨演讲深度解析

近日,庄严肃穆的数字驱动创新峰会在中国首都北京隆重召开,聚焦于探讨数据经济的创新前沿。在此次盛会中,备受瞩目的亚信安慧AntDB数据库荣幸受邀参与,该数据库的副总裁张桦以其深刻见解和卓越经验发表了引人瞩目的主旨演讲。 图1&…

2024年个人工作计划怎么写?新年待办计划这样写更方便

元旦的钟声还在耳边回响,2024年的新篇章已经开启。面对新的一年,我深知一个清晰、实用的个人工作计划是多么重要。它不仅是指引我前进的灯塔,更是我实现目标、提升效率的秘密武器。 但如何制定这样一个计划呢?在过去,…

Github 2023-12-31 开源项目日报 Top10

根据Github Trendings的统计,今日(2023-12-31统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量TypeScript项目3Swift项目1Java项目1HTML项目1Astro项目1Python项目1C项目1Dart项目1Jupyter Notebook项目1C项…

github短视频去除水印项目Douyin_TikTok_Download_API介绍

当下正值短视频盛行的时代。在我们浏览短视频的同时,经常能发现一些精美的图片、引人入胜的文案以及吸引眼球的视频,想要将它们保存到本地。然而,保存下来的图片或视频通常伴随着不太愉悦的水印,这显著降低了使用体验。因此&#…

深度学习|10.2 边缘检测示例 10.3 更多边缘检测

文章目录 如何在编程中实现卷积运算使用卷积实现边缘检测结果矩阵的元素正负性质的意义水平分类器如何构造卷积运算使用的矩阵 原矩阵通过一个过滤器(filter)/核心(kernel)来生成一个新的矩阵。 如何在编程中实现卷积运算 使用卷积…

梦百合杯8强/半决赛完赛 党毅飞、李轩豪晋级决赛

2024年1月3日,第五届“MLILY梦百合0压床垫杯”世界围棋公开赛(以下简称:梦百合杯)8强/半决赛滁州圆满落幕,党毅飞2:0胜廖元赫,李轩豪2:0胜刘宇航,两位棋坛老将成功击败两位00后新生代棋手,联袂晋级决赛。决赛计划24年5月份在江苏如皋举行。 于12月29日举办的8强赛中,党毅飞胜辜…

设计模式:简单工厂模式

这里写目录标题 工厂模式简介核心角色:实现 工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 工厂模式提供了一种将对象的实例化过程封…

短视频账号矩阵系统源码/技术交付3年开发源头

账号矩阵3年技术独立开发打造是一个非常有挑战性和前景的项目。以下是一些建议,帮助你成功打造一个成功的短视频账号矩阵: 1. 确定目标受众:首先需要明确你的目标受众是谁,了解他们的兴趣爱好、年龄、性别等,以便为他们…

航芯ACM32G103开发板评测 02-GPIO输入输出

航芯ACM32G103开发板评测 02-GPIO输入输出 航芯ACM32G103开发板评测 GPIO输入输出应用 软硬件平台 ACM32G103 Board开发板 MDK-ARM Keil GPIO输出典型应用——点灯 GPIO输入典型应用——按键 GPIO 功能概述 GPIO 是通用输入/输出(General Purpose I/O&#x…

你对自己的努力满意吗?回复10-100分

有的学生备战高考,或者上班,每天能量满满,战气十足。虽然很累,但是很痛快。有些人今天进步很快,工作休息很辛苦,但是却不累。 有的人一直在抑郁寡欢,有的人信心十足,认定一个目标&am…

[足式机器人]Part2 Dr. CAN学习笔记-动态系统建模与分析 Ch02-1+2课程介绍+电路系统建模、基尔霍夫定律

本文仅供学习使用 本文参考: B站:DR_CAN Dr. CAN学习笔记-动态系统建模与分析 Ch02-12课程介绍电路系统建模、基尔霍夫定律 1. 课程介绍2. 电路系统建模、基尔霍夫定律 1. 课程介绍 2. 电路系统建模、基尔霍夫定律 基本元件: 电量 库伦&…