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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 「解密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默认引擎的特点与区别。


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
缓存 关系型数据库 MySQL
MySQL索引策略与查询性能调优实战
在实际应用中,需要根据具体的业务需求和查询模式,综合运用索引策略和查询性能调优方法,不断地测试和优化,以提高MySQL数据库的查询性能。
289 66
|
2月前
|
存储 关系型数据库 MySQL
MySQL引擎InnoDB和MyISAM的区别?
InnoDB是MySQL默认的事务型存储引擎,支持事务、行级锁、MVCC、在线热备份等特性,主索引为聚簇索引,适用于高并发、高可靠性的场景。MyISAM设计简单,支持压缩表、空间索引,但不支持事务和行级锁,适合读多写少、不要求事务的场景。
72 9
|
3月前
|
关系型数据库 MySQL
mysql 5.7.x版本查看某张表、库的大小 思路方案说明
mysql 5.7.x版本查看某张表、库的大小 思路方案说明
109 5
|
3月前
|
SQL DataWorks 关系型数据库
阿里云 DataWorks 正式支持 SelectDB & Apache Doris 数据源,实现 MySQL 整库实时同步
阿里云数据库 SelectDB 版是阿里云与飞轮科技联合基于 Apache Doris 内核打造的现代化数据仓库,支持大规模实时数据上的极速查询分析。通过实时、统一、弹性、开放的核心能力,能够为企业提供高性价比、简单易用、安全稳定、低成本的实时大数据分析支持。SelectDB 具备世界领先的实时分析能力,能够实现秒级的数据实时导入与同步,在宽表、复杂多表关联、高并发点查等不同场景下,提供超越一众国际知名的同类产品的优秀性能,多次登顶 ClickBench 全球数据库分析性能排行榜。
|
3月前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
548 1
|
4月前
|
NoSQL 关系型数据库 MySQL
MySQL与Redis协同作战:优化百万数据查询的实战经验
【10月更文挑战第13天】 在处理大规模数据集时,传统的关系型数据库如MySQL可能会遇到性能瓶颈。为了提升数据处理的效率,我们可以结合使用MySQL和Redis,利用两者的优势来优化数据查询。本文将分享一次实战经验,探讨如何通过MySQL与Redis的协同工作来优化百万级数据统计。
178 5
|
3月前
|
关系型数据库 MySQL
mysql 5.7.x版本查看某张表、库的大小 思路方案说明
mysql 5.7.x版本查看某张表、库的大小 思路方案说明
75 1
|
4月前
|
存储 关系型数据库 MySQL
mysql 引擎概述
MySQL存储引擎是处理不同类型表操作的组件,InnoDB是最常用的默认引擎,支持事务、行级锁定和外键。MySQL采用插件式存储引擎架构,支持多种引擎,如MyISAM、Memory、CSV等,每种引擎适用于不同的应用场景。通过`SHOW ENGINES`命令可查看当前MySQL实例支持的存储引擎及其状态。选择合适的存储引擎需根据具体业务需求和引擎特性来决定。
119 1
|
3月前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第26天】数据库作为现代应用系统的核心组件,其性能优化至关重要。本文主要探讨MySQL的索引策略与查询性能调优。通过合理创建索引(如B-Tree、复合索引)和优化查询语句(如使用EXPLAIN、优化分页查询),可以显著提升数据库的响应速度和稳定性。实践中还需定期审查慢查询日志,持续优化性能。
343 0
|
4月前
|
存储 关系型数据库 MySQL
mysql 8.0 的 建表 和八种 建表引擎实例
mysql 8.0 的 建表 和八种 建表引擎实例
49 0