MySQL四大引擎,数据库管理,数据表管理,数据库账号管理

news2024/11/15 17:52:24

MySQL四大引擎

InnoDB

InnoDB引擎是MySQL默认的存储引擎。它支持事务和行级锁定,并具有高并发性和数据完整性保护的特性。InnoDB适用于具有复杂查询和高并发读写操作的应用程序。MyISAM

InnoDB引擎特点和优势
  1. 事务支持:InnoDB支持ACID(原子性、一致性、隔离性和持久性)事务,这意味着多个操作可以作为一个原子性操作执行,要么全部成功,要么全部回滚。这对于处理复杂的业务逻辑和保护数据完整性非常有用。

  2. 行级锁定:InnoDB引擎支持行级锁定,这意味着只有正在访问的行会被锁定,而不是整个表。这允许并发操作,提高了系统的并发性能。

  3. 外键约束:InnoDB支持外键约束,可以在表之间建立关系,实现数据的一致性和完整性。外键约束可以确保引用表中的数据与主表中的数据保持一致。

  4. 高并发性能:InnoDB引擎使用多版本并发控制(MVCC)来处理并发读写操作。它通过在事务中创建快照来实现并发性能,读操作不会阻塞写操作,写操作也不会阻塞读操作。

  5. 崩溃恢复:InnoDB具有崩溃恢复机制,可以在数据库崩溃后自动恢复数据的一致性。它将数据和日志文件分开存储,可以在崩溃后重新应用日志,确保数据的完整性。

  6. 支持可扩展性:InnoDB可以在多个CPU上并行处理事务,从而提高了系统的可扩展性和性能。

总体而言,InnoDB引擎适用于需要处理复杂的业务逻辑、需要高并发性和数据完整性保护的应用程序。它是MySQL默认的存储引擎,并在许多大型网站和应用程序中广泛使用,存储限制:64TG

Memory

Memory引擎将数据存储在内存中,提供了非常快速的数据读写速度。然而,由于数据存储在内存中,重启或崩溃时会丢失数据。因此,Memory引擎适用于临时数据或缓存。

Memory(也称为Heap)是MySQL的一种存储引擎,它将数据存储在内存中而非磁盘上。

Memory引擎的特点和优势:
  1. 快速访问:由于数据存储在内存中,Memory引擎的读写操作非常快速。这对于需要高性能和低延迟的应用程序非常有用。

  2. 适用于临时数据:Memory引擎适用于存储临时数据,如缓存数据、会话数据等。由于数据存储在内存中,读写速度快,适合处理频繁变动的数据。

  3. 不支持事务和持久性:Memory引擎不支持事务处理和持久性。当数据库重新启动时,所有存储在内存中的数据都会丢失。因此,Memory引擎不适合存储关键的持久性数据。

  4. 不支持外键约束和其他高级功能:Memory引擎不支持外键约束、触发器、子查询等一些高级功能。它主要专注于快速访问和处理数据。

  5. 简单的数据结构:Memory引擎使用哈希索引来加快数据的查找速度。由于没有复杂的磁盘I/O和事务管理,Memory引擎的数据结构比其他引擎更简单。

总体而言,Memory引擎适用于需要快速访问和处理临时数据的应用程序,特别适合用作缓存或会话存储。它有着极快的读写性能,但不支持事务处理和持久性。因此,在选择使用Memory引擎时,需要权衡数据的重要性和可靠性需求。

Archive

Archive引擎是用于存储历史数据的存储引擎。它具有高压缩比和低存储需求的特点,适用于只需要偶尔访问的大量历史数据的应用程序。

Archive引擎是MySQL的一种存储引擎,主要用于存储归档数据。

Archive引擎特点和优势
  1. 高度压缩:Archive引擎使用了高度压缩的存储格式,可以极大地减小数据的存储空间。这对于需要存储大量历史数据的应用程序非常有用。

  2. 适用于只读数据:Archive引擎适用于存储只读数据,即数据写入后很少或不再进行修改的情况。它在插入数据时的性能较佳,但更新和删除数据的性能较差。

  3. 不支持索引:Archive引擎不支持索引,因此只能通过全表扫描来查询数据。这使得它更适合存储大量的历史数据,而不适合需要频繁查询的场景。

  4. 低存储和I/O开销:由于高度压缩和不支持索引,Archive引擎具有较低的存储和I/O开销。这使得它适用于存储大规模历史数据的应用程序,可以节省存储资源。

  5. 不支持事务和并发控制:Archive引擎不支持事务处理和并发控制。因此,它主要用于存储只读数据,不适用于需要频繁的写入和并发操作的场景。

总的来说,Archive引擎适用于存储大量历史数据的只读场景。它通过高度压缩和低存储开销来节省存储资源,并提供较好的查询性能。然而,由于不支持索引和事务处理,不适合需要频繁修改和并发操作的应用程序。在选择使用Archive引擎时,需要考虑数据的只读性质和查询需求。

MyISAM

MyISAM引擎是MySQL最早的存储引擎之一。它不支持事务和行级锁定,但具有很高的插入速度和空间效率。MyISAM适用于读密集型应用程序,如日志记录或搜索引擎。

MyISAM引擎是MySQL的一种存储引擎,是默认的存储引擎之一。

MyISAM引擎特点和优势
  1. 高性能:MyISAM引擎适用于读操作较多的应用场景,它可以提供很好的读取性能。它使用了表级锁定,因此在写入操作较少或没有并发写入的情况下,也可以具有良好的性能。

  2. 支持全文索引:MyISAM引擎支持全文索引,可以在文本列上进行高效的全文搜索。这对于需要进行全文搜索的应用程序非常有用。

  3. 不支持事务和行级锁定:MyISAM引擎不支持事务处理和行级锁定。这意味着它不适用于需要高并发写入和复杂的事务处理的应用程序。

  4. 不支持外键约束:MyISAM引擎不支持外键约束,这意味着它不具备维护数据完整性的能力。如果数据的完整性对应用程序很重要,可能需要考虑其他支持外键约束的引擎。

  5. 低存储和I/O开销:MyISAM引擎使用了较低的存储和I/O开销,这使得它适用于存储大量的只读数据。它还支持压缩表格,可以进一步减小存储空间。

总的来说,MyISAM引擎适用于读取密集型、对数据完整性要求不高的应用场景。它具有高性能和支持全文索引的优势,但不支持事务处理、行级锁定和外键约束。在选择使用MyISAM引擎时,需要考虑应用程序的读写比例、并发性和数据完整性等因素。
 

查看数据库引擎

SHOW ENGINES

数据库管理

元数据库

元数据库是一种特殊类型的数据库,用于存储和管理其他数据库的元数据。元数据是描述数据库结构、对象和关系的数据。它包括表、字段、索引、触发器等对象的定义、属性和关系,以及其他与数据库相关的信息,如用户权限和访问控制。元数据库可作为一个中央存储库,提供对其他数据库的元数据的集中管理和访问。

元数据库的主要功能

元数据库的主要功能包括元数据的创建、修改和删除,以及元数据的查询和检索。它可以用于管理和监控数据库的结构和对象的变化,支持数据模型的维护和演化,以及数据库的版本控制和迁移。元数据库还可以提供对数据库的数据字典和文档的自动生成,以及对数据库设计和开发过程的支持。

元数据库的好处包括提高数据库的可管理性和可维护性,减少人工操作和错误,提高数据库设计和开发的效率,以及支持数据库的自动化管理和部署。它还可以提供对数据库的全面监控和分析,帮助用户理解和优化数据库性能,并支持数据库的安全和合规性管理。

元数据库分类

information schema 

Information Schema是MySQL数据库系统中的一种特殊数据库,用于存储关于数据库系统自身的元数据信息。它包含了数据库、表、列、索引、用户权限等各种元数据信息,可以通过查询Information Schema来获取数据库系统的元数据。

mysql

MySQL是一种开源的关系型数据库管理系统(RDBMS),它使用结构化查询语言(SQL)来管理和操作数据。MySQL数据库本身并不属于元数据库的范畴,它是一种用于存储和管理数据的数据库系统。

performance schema

Performance Schema是MySQL数据库系统中的一个特殊数据库,用于存储和管理与性能相关的元数据信息。它提供了一组系统视图和表,可以用于监控和分析MySQL数据库服务器的性能。 面积

相关操作

数据库增删改查

use数据库名
create database if not exists数据库名default charset utf&collate utf8_general_.ci--设置了字符集编码以及不区分大小写
show databases;
drop database数据库名

数据表管理

数据库的三大范式

数据库三大范式是指关系数据库设计中的三个规范化原则,用于规范化数据库的结构和消除数据冗余。

/

第一范式(1NF):确保每个列都是原子的,即每个列不可再分。这意味着每个属性的值应该是不可分解的。例如,一个包含学生信息的表,每个学生只能有一个学号,不能有多个学号。

第二范式(2NF):确保非主键列完全依赖于主键。这意味着每个非主键列必须完全依赖于主键,而不是依赖于主键的一部分。如果存在部分依赖,就需要将表分解成多个表来消除冗余。例如,一个包含订单信息的表,订单号是主键,每个订单可以包含多个产品,但是产品信息应该单独存储在另一个表中。

第三范式(3NF):确保非主键列之间没有传递依赖。这意味着在一个表中,非主键列之间不应该存在传递依赖关系。如果存在传递依赖,就需要将表进一步分解以消除冗余。例如,一个包含员工信息的表,每个员工的部门信息应该存储在一个独立的表中,而不是直接存储在员工表中。

优化原则 

越小越好
更小的磁盘空间、内存、CPU缓存
更少的CPU周期

数值类型

这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL 和 NUMERIC),以及近似数值数据类型(FLOAT、REAL 和 DOUBLE PRECISION)。

关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。

BIT数据类型保存位字段值,并且支持 MyISAM、MEMORY、InnoDB 和 BDB表。

作为 SQL 标准的扩展,MySQL 也支持整数类型 TINYINT、MEDIUMINT 和 BIGINT。下面的表显示了需要的每个整数类型的存储和范围。

整数型

一般常见的整数的数据类型有int、smallint、mediumint、bigint。

数据类型字节大小范围(有符号)范围(无符号- unsigned)

用途

TINYINT1 字节(-128,127)(0,255)微小整数值
SMALLINT2 字节(-32 768,32 767)(0,65 535)小整数值

MEDIUMINT
3字节(-8 388 608,8 388 607)(0,16 777 215)中等整数值
INT或INTEGER4字节(-2 147 483 648,2 147 483 647)(0,4 294 967 295)整数值
BIGINT8字节(-9 233 372 036 854 775 808,9 223 372 036 854 775 807)(0,18 446 744 073 709 551 615)大整数值
小数型
数据类型字节大小范围(有符号)围(无符号- unsigned)用途
FLOAT4 字节(-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38)0,(1.175 494 351 E-38,3.402 823 466 E+38)单精度浮点小数值
OUBLE8 字节

(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)

0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)双精度浮点小数
日期时间型
类型字节大小范围格式
DATE4字节000-01-01/9999-12-31  YYYY-MM-DD
TIME 3字节-838:59:59/838:59:59 HH:MM:SS  
YEAR 1字节1901/2155YYYY 
DATETIME8字节1000-01-01 00:00:00/9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS 
TIMESTAMP 4字节1970/1/1 0:00YYYYMMDD HHMMSS 

这里只说datetime与timestamp区别:
 datetime与timestamp都是日期和时间的混合类型,区别在于:
 (1)表示的取值范围不同,datetime的取值范围远远大于timestamp的取值范围;
 (2)将NULL插入timestamp字段后,该字段的值实际上是MySQL服务器当前的日期和时间;
 (3)同一个timestamp类型的日期或时间,不同的时区,显示结果不同;
 (4)insert、update、delete语句中,日期时间型数据,需要用引号(单引号或者双引号)引起来。

字符型
字符串类型 字节大小 描述及存储需求
CHAR0-255字节   定长字符串,如CHAR(10),定长10占位,不足补空格
VARCHAR 0-255字节 变长字符串  ,如VARCHAR(10),最长10个字节,存储长度按照实际输入长度为准
TINYBLOB 0-255字节不超过255个字符的二进制字符串
TINYTEXT 0-255字节短文本字符串  
BLOB  0-65535字节二进制形式的长文本数据
TEXT 0-65535字节长文本数据
MEDIUMBLOB0-16777215字节 二进制形式的中等长度文本数据 
MEDIUMTEXT0-16 777 215字节中等长度文本数据
LOGNGBLOB0-4 294 967 295字节二进制形式的极大文本数据  
LONGTEXT0-4 294 967 295字节极大文本数据  
VARBINARY(M)M允许长度0-M个字节的变长字节符串,值的长度+1个字节
BINARY(M)M允许长度0-M个字节的定长字节符串  

1、字符串型数据,在sql语句中,需要用单引号或者双引号引起来,如果"张三","中国人";
2、char、varchar、text比较:
(1)经常变化的字段用varchar
(2)知道固定长度的用char
(3)尽量用varchar
(4)超过255字符的只能用varchar或者text
(5)能用varchar的地方不用text
(6)按照查询速度: char最快, varchar次之,text最慢。
3、binary和varbinary区别:
(1)binary类型的长度是固定的,在创建表时就指定了,实际数据长度不足最大长度的空间由‘\0’补全。举个例子,binary(50)就是指定binary类型的长度为50;
(2)varbinary类型的长度是可变的,在创建表时指定了最大长度;指定好了varbinary类型的最大值以后,其长度可以在0到最大长度之间。举个例子,varbinary(50)的最大字节长度是50,但是,不是每条记录的字节长度都是50。在这个最大值范围内,使用多少分配多少。varbinary类型实际占用的空间为实际长度加一。这样,可以有效的节约系统的空间;

数据库账号管理

数据库账号管理是指对数据库中的账号进行管理和控制的操作。数据库账号是用来控制用户对数据库的访问权限的身份标识。数据库账号管理包括创建账号、修改账号、删除账号、授权账号等操作。

创建账号:创建一个新的数据库账号,指定账号名称和密码,并设置该账号的权限。

修改账号:修改已有的数据库账号的密码,或修改账号的权限。

删除账号:删除数据库中的一个账号,同时删除该账号所拥有的权限。

授权账号:给账号分配权限,指定账号对数据库中的某些表、视图、存储过程等的操作权限。

数据库账号管理是非常重要的安全措施,可以保障数据库中的数据不被未经授权的人访问和修改。只有经过授权的账号才能访问数据库,并且根据账号的权限只能进行特定的操作。

用户的管理操作
查询用户常见信息 

select user,host from user;

 查询用户

select * from user;

设置权限

创建用户设置密码

create user liao identified by '123456'

select user,host from user

收回权部分权限

revoke all on mysql.* from  liao@'%';

增加授权
grant ALL on mysql.* to liao@'%';

 授予查看一张表格权限

grant select on mysql.tables_priv to liao@'%';

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

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

相关文章

搭建宠物寄养小程序流程

近日,一地宠物寄养需求旺盛,元旦满房,春节几近饱和,一窝难求。随着市场需求的增长,对于很多宠物行业的商家,可以考虑开展宠物寄养服务,尤其是节假日的宠物寄养需求会更高。因此,商家…

IoTDB 集群部署——windows

本文的测试环境为window server2016,版本包为1.1.0,jdk版本为1.8 首先下载IoTDB版本包,链接地址如下 https://archive.apache.org/dist/iotdb/1.1.0/apache-iotdb-1.1.0-all-bin.zip 本次部署将使用1个ConfigNode 和3个DataNode模式&#…

计算机网络—网络搭建NAT内外网映射

使用Windows Server 2003 网络拓扑 Router 外网:NAT IP 网段 192.168.17.0/24内网:仅主机模式 IP 172.16.29.4 Client1:仅主机模式 IP 172.16.29.2 网关 172.16.29.1 Client2:仅主机模式 IP 172.16.29.3 网关 172.16.29.1…

Python武器库开发-武器库篇之代理池配置(四十)

武器库篇之代理池配置(四十) 我们在渗透的过程中,是必须要挂代理的,相信为何要挂代理的原因,各位也是非常的明白的,这里就不多讲了。关于如何挂代理和购买代理大家可以去看内网隧道代理技术(十)之公网资产…

【Java】实验三 抽象类与接口

实验名称 实验三 抽象类与接口 实验目的 1. 深刻理解抽象类、接口的意义。 2. 熟练掌握抽象类和接口的定义、继承抽象类以及实现接口的方法。 3. 理解和掌握多态。 实验内容 (一)抽象类实验:项目源码中新建一个ahpu.shape的包&a…

pytest-yaml 测试平台-4.生成allure报告,报告反馈企业微信、钉钉、飞书通知

前言 定时任务执行完成后生成可视化allure报告,并把结果发到企业微信,钉钉,飞书通知群里。 生成allure报告 添加定时任务 执行完成后生成allure报告 查看报告详情 报告会显示详细的request 和 response 详细信息 也可以查看log日志 …

计算机基础面试题 |08.精选计算机基础面试题

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

图像清晰度评估指标

图像清晰度评估涉及多个指标,这些指标可用于定量测量图像的清晰度和质量。 以下是一些常见的图像清晰度评估指标: 均方根误差(Root Mean Square Error,RMSE): 通过计算原始图像和处理后图像之间的像素差异的…

kbdnecnt.DLL文件缺失,软件或游戏无法启动运行,怎样快速修复?

不少人都在问“kbdnecnt.DLL文件”是什么?为什么电脑总是报错提示说“kbdnecnt.DLL文件缺失,软件无法启动”? 首先,先来了解“kbdnecnt.DLL文件”是什么? kbdnecnt.DLL是Windows操作系统中的一个动态链接库文件&#…

关于几何建模内核

几何建模内核是用于提供计算机辅助设计 (CAD) 软件中的 3D 建模功能的软件组件。它用于设计虚拟模型以为真实对象的仿真和制造提供支持。几何建模内核使用各种不同的几何表示形式来表示真实对象。这些模型包括使用三角形表面网格粗略估计对象的小平面模型,以及使用在…

docker如何配置阿里云镜像加速?

登录阿里云后,我们点击右上角的控制台,控制台中搜索镜像加速服务,然后点击帮助文档的官方镜像加速: 点击容器镜像服务控制台: 在镜像工具里面的镜像加速器中就可以看到: 分别执行即可: 之后我们…

五步解决Ubuntu界面太小的问题

名人说:莫听穿林打叶声,何妨吟啸且徐行。—— 苏轼《定风波莫听穿林打叶声》 Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder) 对于20版本及以上的unbuntu我们可以通过安装open-vm-tools来解决界面大小的问题,具体步骤如…

修改多选框el-checkbox样式, 大小,背景色

修改多选框el-checkbox样式, 大小,背景色 /* 背景透明 */ .el-checkbox__inner {background: transparent;border: 1px solid #00ffe5; } /* 选中样式 */ .el-checkbox__input.is-checked .el-checkbox__inner, .el-checkbox__input.is-indeterminate .el-checkbox__inner {b…

简易机器学习笔记(七)计算机视觉基础 - 常用卷积核和简单的图片的处理

前言 这里实际上涉及到了挺多有关有关理论的东西,可以详细看一下paddle的官方文档。不过我这里不过多的谈有关理论的东西。 【低层视觉】低层视觉中常见的卷积核汇总 图像处理中常用的卷积核 在代码中,我们实际上是用不同的卷积核来造成不同的影响&a…

2024年关键技术发展战略趋势前瞻

技术趋势在不断变化,但总的趋势是技术日益深入人类生活的方方面面,这些趋势可能会对未来的科技发展和人类生活产生深远影响,以下是预计今年将塑造未来的一些关键技术趋势。 更多的人将采用人工智能和机器学习 人工智能(AI)和机器学习(ML)不…

报表生成器FastReport .Net用户指南:带图表的报告(图表编辑器)

FastReport .Net是一款全功能的Windows Forms、ASP.NET和MVC报表分析解决方案,使用FastReport .NET可以创建独立于应用程序的.NET报表,同时FastReport .Net支持中文、英语等14种语言,可以让你的产品保证真正的国际性。 FastReport.NET官方版…

自动化测试用例设计粒度

自动化测试用例的粒度指的是测试用例的细致程度,即每个测试用例检查的功能点的数量和范围。 通常,根据测试用例的粒度,可以被分为3种不同的层次,从更低层次的细粒度到更高层次的粗粒度。 第一种:单元测试 - 细粒度 …

性能测试之(六):JMeter 元件

元件(多个类似功能组件的容器) 组件:封装的方法,比如取样器中的发送请求的方法 一、常见的元件 1、取样器:发送请求2、逻辑处理:控制语句执行顺序3、前置处理器:在请求(取样器&…

Spark---RDD算子(单值类型Value)

文章目录 1.RDD算子介绍2.转换算子2.1 Value类型2.1.1 map2.1.2 mapPartitions2.1.3 mapPartitionsWithIndex2.1.4 flatMap2.1.5 glom2.1.6 groupBy2.1.7 filter2.1.8 sample2.1.9 distinct2.1.10 coalesce2.1.11 repartition2.1.12 sortBy 1.RDD算子介绍 RDD算子是用于对RDD进…

Spring上下文之support模块DefaultLifecycleProcessor

博主介绍:✌全网粉丝5W+,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验✌ 博主作品:《Java项目案例》主要基于SpringBoot+MyBatis/MyBatis-plus+…