「解密MySQL数据引擎:从建库到账号管理的实战教程」

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介: 「解密MySQL数据引擎:从建库到账号管理的实战教程」

引言

在当今信息时代,数据成为了企业决策和业务发展的重要基石。为了高效地管理和利用数据,数据引擎、建库及账号管理成为了关键技术。本文将介绍数据引擎的概念和作用,以及建库和账号管理的重要性,并详细讲解引擎InnoDB与MySQL默认引擎。

一、MySQL数据引擎的概念与作用

数据引擎是一种软件技术,用于管理和处理海量数据。其主要作用有以下几个方面:

数据存储:数据引擎通过建立数据库或数据仓库的方式,将数据进行结构化存储。这样使得数据的访问和查询更加高效和方便。

数据处理:数据引擎提供了数据处理的功能,如数据清洗、数据转换、数据挖掘等。通过对数据进行加工和分析,可以获得有价值的信息和结论。

数据分发:数据引擎能够将数据以多种形式进行分发,如API接口、文件传输等。这样可以方便地将数据提供给其他系统或用户使用。

数据安全:数据引擎具备数据安全管理的功能,包括数据加密、访问控制、备份恢复等。这样能够保证数据的机密性、完整性和可用性。

二、MySQL建库的重要性

建库是指根据业务需求和数据结构,创建数据库或数据仓库的过程。建库的重要性体现在以下几个方面:

数据组织:通过建库,可以将数据按照合理的结构进行组织和存储。这样能够提高数据的可读性和可维护性,便于数据的管理和使用。

数据一致性:建库可以确保数据的一致性。通过定义表和字段的规范,保证了数据的统一性和正确性。

数据性能:合理的建库设计可以提高数据的查询和处理性能。通过建立索引、优化查询语句等方式,可加速数据的访问和处理过程。

数据安全:在建库过程中,可以设置权限和访问控制,保护数据的安全。通过合理的备份和恢复策略,能够避免数据的丢失和损坏。

三、MySQL账号管理的重要性有哪些?

账号管理是指对系统用户的身份认证和权限管理。账号管理的重要性体现在以下几个方面:

用户认证:账号管理能够确保用户的身份认证。通过有效的认证机制,限制只有合法用户才能访问数据和系统资源。

访问控制:账号管理可以实施细粒度的访问控制策略。通过为用户分配合适的权限,限制其对数据和功能的访问权限,保护数据的安全性。

审计和追踪:账号管理能够对用户的操作进行审计和追踪。这样可以监控用户行为,及时发现异常情况并采取相应的措施。

用户权限管理:账号管理可以管理用户的权限,并根据业务需要进行调整。这样能够确保用户拥有合适的权限,保证数据的安全和合规性。

四、何为脏读,幻读,不可重复读?

4.1 脏读是什么?

脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。

T2时刻,事务B把原来张三的成绩由原数据80改为了70,此后又被T3时刻的事务A读取到了,但是T4时刻事务B发生异常,进行了回滚操作。这个过程,我们称70为脏数据,事务A进行了一次脏读。

4.2 不可重复读是什么?

不可重复读,有时候也会说成“读已提交”。什么意思呢,就是在一个事务内,多次读取同一个数据,却返回了不同的结果。实际上,这是因为在该事务间隔读取数据的期间,有其他事务对这段数据进行了修改,并且已经提交,就会发生不可重复读事故。

图示中事务A在T1和T4查询同一语句,却得到了不同的结果,这是因为T2~T3时刻事务B对该数据进行了修改,并提交。这个过程,出现了在一个事务内两次读到的数据却是不一样的,我们称为是不可重复读。

不可重复读脏读的区别:前者是“读已提交”,后者是“读未提交”

4.3 幻读是什么?

幻读是指当事务不独立执行时,插入或者删除另一个事务当前影响的数据而发生的一种类似幻觉的现象。举个例子,某事务在检查表中的数据数count时,是10,过一段时间之后再查是11,这就发生了幻读,之前的检测获取到的数据如同幻觉一样。

出现幻读和不可重复读的原因很像,都是在多次操作数据的时候发现结果和原来的不一样了,出现了其他事务干扰的现象。但是,幻读的偏重点是添加和删除数据,多次操作数据得到的记录数不一样;不可重复读的偏重点是修改数据,多次读取数据发现数据的值不一样了。

事务B向表中新插入了一条数据,事务A在T3时刻后查询数据的时候,突然发现数据和以前查询的时候多出了一项,像产生了幻觉一样。

五、MySQLInnoDB与MySQL默认引擎

在MySQL数据库中,InnoDB是默认的存储引擎。下面将详细讲解InnoDB与MySQL默认引擎的特点和区别:

5.1 InnoDB引擎特点有哪些?

事务支持:InnoDB是支持事务的存储引擎,具备ACID属性(原子性、一致性、隔离性、持久性)。

行级锁:InnoDB采用行级锁定,能够提供更好的并发性能。多个事务可以同时访问不同的行,减少了数据冲突和锁等待。

外键支持:InnoDB支持外键约束,可以保持数据的完整性和一致性。通过外键,可以在表之间建立关联关系。

MVCC支持:InnoDB支持多版本并发控制(MVCC),可以提供更好的并发性能和数据一致性。

MySQL默认引擎特点:

5.2 MyISAM引擎是什么?

在早期的MySQL版本中,MyISAM是默认的存储引擎。它以表级锁定的方式进行操作,不支持事务和行级锁,适用于读写比较低的场景。

性能和读写速度:MyISAM在某些场景下可以提供更高的读取速度,适合于大量查询的应用。

全文搜索:MyISAM引擎支持全文索引,适用于需要进行全文搜索的应用。

总体来说,InnoDB引擎在大多数场景中更适合作为默认引擎。它提供了更好的事务支持、并发性能和数据完整性。然而,在某些特定的读取密集型应用中,MyISAM可能会有一定的优势。

六、MySQL数据库授权

6.0 查询数据库本地的mysql的用户

select * from user

查询结果

查询MySQL数据库版本

select version()

6.1 MySQL创建用户

create user yuanhui

6.2 为用户设置密码

Alter USER 'yuanhui'@'%' IDENTIFIED WITH mysql_native_password By '123456';

6.3 为用户赋权

grant All on mybatis_ssm.* to yuanhui@'%';

6.4 为用户增加权限

grant All on yiliao.* to yuanhui@'%';

6.5 为用户收回权限

revoke all on yiliao.* from yuanhui@'%'

6.6 删除用户

Drop User yuanhui

总结

数据引擎、建库及账号管理是企业管理和利用数据的重要组成部分。通过合理地建设数据引擎,可以高效地存储、处理和分发数据。同时,合理的建库和账号管理能够提高数据的可读性、一致性和安全性。在MySQL数据库中,默认引擎InnoDB具备事务支持和行级锁等特点,适用于绝大多数场景。然而,MyISAM作为早期的默认引擎,在特定的读取密集型场景中也有一定的优势。希望本文可以帮助读者更好地了解数据引擎、建库及账号管理的概念和实践,并详细了解InnoDB与MySQL默认引擎的特点与区别。


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
9月前
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
|
9月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
7月前
|
SQL 人工智能 关系型数据库
如何实现MySQL百万级数据的查询?
本文探讨了在MySQL中对百万级数据进行排序分页查询的优化策略。面对五百万条数据,传统的浅分页和深分页查询效率较低,尤其深分页因偏移量大导致性能显著下降。通过为排序字段添加索引、使用联合索引、手动回表等方法,有效提升了查询速度。最终建议根据业务需求选择合适方案:浅分页可加单列索引,深分页推荐联合索引或子查询优化,同时结合前端传递最后一条数据ID的方式实现高效翻页。
385 0
|
5月前
|
安全 关系型数据库 MySQL
CentOS 7 yum 安装 MySQL教程
在CentOS 7上安装MySQL 8,其实流程很清晰。首先通过官方Yum仓库来安装服务,然后启动并设为开机自启。最重要的环节是首次安全设置:需要先从日志里找到临时密码来登录,再修改成你自己的密码,并为远程连接创建用户和授权。最后,也别忘了在服务器防火墙上放行3306端口,这样远程才能连上。
941 16
|
6月前
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
506 10
|
7月前
|
SQL 存储 缓存
MySQL 如何高效可靠处理持久化数据
本文详细解析了 MySQL 的 SQL 执行流程、crash-safe 机制及性能优化策略。内容涵盖连接器、分析器、优化器、执行器与存储引擎的工作原理,深入探讨 redolog 与 binlog 的两阶段提交机制,并分析日志策略、组提交、脏页刷盘等关键性能优化手段,帮助提升数据库稳定性与执行效率。
188 0
|
9月前
|
存储 关系型数据库 MySQL
【免费动手教程上线】阿里云RDS MySQL推出大容量高性能存储:高性能本地盘(最高16TB存储空间)、高性能云盘(最高64TB存储空间)
阿里云RDS MySQL提供高性能本地盘与高性能云盘等存储方案,满足用户大容量、低延迟需求。高性能本地盘单盘最大16TB,IO延时微秒级;高性能云盘兼容ESSD特性,支持IO性能突发、BPE及16K原子写等能力。此外,阿里云还提供免费动手体验教程,帮助用户直观感受云数据库 RDS 存储性能表现。
|
10月前
|
关系型数据库 MySQL Linux
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
481 28
|
9月前
|
存储 SQL 缓存
mysql数据引擎有哪些
MySQL 提供了多种存储引擎,每种引擎都有其独特的特点和适用场景。以下是一些常见的 MySQL 存储引擎及其特点:
237 0

推荐镜像

更多