深入探索MySQL数据库结构设计:实战案例解析,打造高效、可扩展的数据存储方案

  •  作者简介:我是团团儿,是一名专注于云计算领域的专业创作者,感谢大家的关注
  •  座右铭:   云端筑梦,数据为翼,探索无限可能,引领云计算新纪元
  •  个人主页:团儿.-CSDN博客

前言:

在数字化时代,数据管理已经成为了一项至关重要的任务。

随着大数据的不断涌现,我们面临着如何有效地存储、检索和分析这些海量数据的挑战。

在这个背景下,MySQL作为一个流行的关系型数据库管理系统,扮演着不可或缺的角色。

它以其高性能、高可靠性和易用性而广受青睐,成为了众多企业和开发者的首选数据库解决方案。

对于初学者来说,理解MySQL的数据库模型和数据库结构可能是一个复杂的过程。

这不仅仅是因为数据库的概念本身就很抽象,更因为MySQL提供了多种数据类型和存储引擎,使得其内部机制变得复杂多变。

因此,本文将带领读者走进MySQL的世界,通过问题-分析-解决方案的方式,深入浅出地介绍MySQL的数据库模型和数据库结构。

964e29502d98453c82f5debd946592af.png


1.C/S(客户端/服务端)模型

e6ecfcfc73d84e3390c4c3f4f72b400c.png

C/S模型是一种网络架构模式,其中系统被分为两个主要部分:客户端(Client)和服务端(Server)。

在这种模型中,客户端负责向用户提供界面和交互能力,而服务端则负责处理数据、逻辑运算和存储等任务。客户端和服务端之间通过网络协议(如TCP/IP)进行通信。

 

那么,数据库连接的基本方式及命令为:

TCP/IP方式(远程、本地):

mysql -uroot -p123.com -h 192.168.8.9 -P3306

d563df61a0b0482a8555705ccedf28a6.png


Socket方式(仅本地):

mysql -uroot -p password 123.com

68fda4c160ec43239feaa7520f368191.png


2.实例介绍

数据库实例

mysqld后台守护进程

Master Thread   主

worker Thread   工作

预分配的内存

36b2a82b397244ed89f800294757de38.png


3.mysqld程序结构

eed121b2076e4d178b717e0bffe0d97d.png

 

连接层:

提供连接协议:TCP/IP 、SOCKET

提供验证:用户、密码,IP,SOCKET

提供专用连接线程:接收用户SQL,返回结果

 

SQL层

接收上层传送的SQL语句

语法验证模块:验证语句语法,是否满足SQL_MODE

语义检查:判断SQL语句的类型

DDL :数据定义语言 create drop alter

DCL :数据控制语言 grant  revoke

DML :数据操作语言 insert delete update

DQL: 数据查询语言 select

 

权限检查:用户对库表有没有权限

解析器:对语句执行前,进行预处理,生成解析树(执行计划),说白了就是生成多种执行方案.

优化器:根据解析器得出的多种执行计划,进行判断,选择最优的执行计划

        代价模型:资源(CPU IO MEM)的耗损评估性能好坏

执行器:根据最优执行计划,执行SQL语句,产生执行结果

执行结果:在磁盘的xxxx位置上

提供查询缓存(默认是没开启的),会使用redis tair替代查询缓存功能

提供日志记录(日志管理章节):binlog,默认是没开启的。

 

存储引擎层(类似于Linux中的文件系统)

负责根据SQL层执行的结果,从磁盘上拿数据。

将16进制的磁盘数据,交由SQL结构化化成表,

连接层的专用线程返回给用户。


4 .逻辑结构

cd2ce9fcbe224392adc974a0df61ac6c.png

库:

在数据库系统中,“库”也被称为“数据库”,是存储数据的容器,用于组织和存储数据的集合。它包含了表、索引、视图、存储过程、触发器等数据库对象。

在数据库的逻辑结构中,“库”位于最顶层,其下可以包含多个表、视图等数据库对象。这些对象通过逻辑上的关联和约束,共同构成了数据库的完整结构。

 

表:

是数据库中存储数据的基本单位,由行和列组成    每一行代表一个数据记录,每一列代表一个数据字段。

列:列名(字段),列属性(数据类型,约束等)

数据行(记录)


5 .物理存储结构引入

379d38759f3a442bb64c442378f81811.png

 

库的物理存储结构

用文件系统的目录来存储

 

表的物理存储结构

表:

MyISAM(ext2)

 user.frm  : 存储的表结构(列,列属性)

 user.MYD  :  存储的数据记录

 user.MYI  : 存储索引

 

InnoDB(XFS)

 time_zone.frm : 存储的表结构(列,列属性)

 time_zone.ibd : 存储的数据记录和索引

 ibdata1       :   数据字典信息

 

表的段、区、页(16k)(了解)

一般情况下(非分区表)

一个表就是一个段

一个段由多个区构成

一个区,64个连续的页(16k)组成,1M大小


期待您的关注~

 

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

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

相关文章

noge-gyp构建项目踩坑记录

开发环境 系统: win11 node: 19.7.0 npm: 8.3.2 node-gyp: 10.0.2可以不使用windows-build-tools来安装构建工具,手动进行安装 我这边用windows-build-tools安装时候会提示 process.env only accepts a configurable, writable, and enumerable data descriptor. 查了资料后…

转换视频格式轻松搞定!3个小窍门助你轻松将mxf格式转mp4

你是否因为格式转换而烦恼?你是否经历过这样的情况:你想要在别的设备或平台上播放心仪的视频,但是你的视频文件是xmf格式的,很多设备都不支持这个格式,导致视频无法播放。现在,你需要把mxf格式转mp4格式。你…

【时间盒子】-【2.准备】HarmonyOS 开发前需要准备什么?

零基础新手或转行进入鸿蒙生态应用的开发者,请提前准备以下内容: 一、注册华为帐号 此帐号在华为官方各平台通用,比如:华为手机、华为商城、华为云、华为开发者联盟等等。 https://id1.cloud.huawei.com/CAS/portal/userRegist…

如何在Windows和Mac上免费提取RAR文件?这里有方法

序言 你有没有下载过一个文件,却发现它有一个奇怪的.rar文件扩展名?RAR是一种压缩文件格式,与ZIP文件非常相似,在本文中,我们将向你展示如何在Windows或macOS上打开RAR文件。 如何在Windows 11上打开RAR文件 Windows 11在2023年增加了对RAR文件的原生支持。从那时起,你…

144. 腾讯云Redis数据库

文章目录 一、Redis 的主要功能特性二、Redis 的典型应用场景三、Redis 的演进过程四、Redis 的架构设计五、Redis 的数据类型及操作命令六、腾讯云数据库 Redis七、总结 Redis 是一种由 C 语言开发的 NoSQL 数据库,以其高性能的键值对存储和多种应用场景而闻名。本…

可重入VI,VI模板和动态VI之间的差异 转

可重入VI 当您想要同时运行同一VI的多个实例时,将使用可重入VI。当VI不可重入时,VI只有一个数据空间。因此,一次只能有一个调用者运行VI,因此调用者可能必须“等待轮到它”时才能使用VI。这是VI的默认选项,但您可以将V…

Hibernate 批量插入速度慢的原因和解决方法

由于业务需要一次性连续写入超过10k条以上的新数据,当对象超过10个成员变量以后,整个写入过程居然需要长达35秒,这个速度是不能接受的,故此研究了一下怎么开启Hibernate批量写入的功能。 我这边使用的是Hibernate 5.6.15 在网上…

【Java|Stream流】不可变集合

文章目录 1.什么是不可变集合2.创建不可变集合的方式2.1 List类型2.2 Set2.3 Map 1.什么是不可变集合 不可变集合:不可以被修改的集合 不可变集合优点: 安全性 由于不可变集合不能被修改,所以可以安全地在多个线程之间共享,而不用担心被意外修改&#xf…

【kubernetes】Service 介绍和应用

一,Service介绍 四层代理是基于传输层(第四层)工作的代理,主要在传输层(如TCP、UDP协议)上转发和管理数据流 七层代理是基于应用层(第七层)工作的代理,能够对应用层协议…

# 利刃出鞘_Tomcat 核心原理解析(十)-- Tomcat 性能调优--2

利刃出鞘_Tomcat 核心原理解析(十)-- Tomcat 性能调优–2 二、Tomcat专题 - Tomcat性能调优 - 性能测试结果说明 1、压力性能测试 # 打开另一个终端,切换目录 [rootbogon ~]# cd /usr/local/tomcat# 进行压力性能测试[rootbogon tomcat]# …

JSON处理库 -- Fastjson

文章目录 一、json格式1.1 用途1.2 语法1.3 常见格式 二、fastjson常用类2.1 JSONObject2.2 JSONArray 三、序列化和反序列化3.1 默认序列化与反序列化3.2 序列化的扩展3.3 自定义序列化SerializeFilter3.4 JSONField 注解3.5 复习Jackson 一、json格式 1.1 用途 一种轻量级的…

浅谈SpringMvc的核心流程与组件

一、SpringMvc的核心流程 当发起请求时被前置的控制器(DispatcherServlet)拦截到请求,根据请求参数生成代理请求,找到请求对应的实际控制器,控制器处理请求,创建数据模型,访问数据库,将模型响应给中心控制…

扑捉一只耿鬼(HTML文件)

图例&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><title>耿鬼</title><style>body {background: #fff;font-family: Comfortaa, sans-serif;}* {box-sizing:…

Unet改进12:添加PCONV||减少冗余计算和同时存储访问

本文内容:添加PCONV 目录 论文简介 1.步骤一 2.步骤二 3.步骤三 4.步骤四 论文简介 为了设计快速的神经网络,许多工作都集中在减少浮点运算(FLOPs)的数量上。然而,我们观察到FLOPs的这种减少并不一定会导致类似程度的延迟减少。这主要源于低效率的每秒浮点操作数(FLOP…

Bean 的实例化(创建 | 获取)

Spring为Bean提供了多种实例化方式&#xff0c;包括如下4种方式&#xff1a; 第一种&#xff1a;通过构造方法实例化第二种&#xff1a;通过简单工厂模式实例化第三种&#xff1a;通过factory-bean实例化&#xff08;工厂方法模式实例化&#xff09;第四种&#xff1a;通过Fact…

盘点java8 stream中隐藏的函数式接口

shigen坚持更新文章的博客写手&#xff0c;记录成长&#xff0c;分享认知&#xff0c;留住感动。个人IP&#xff1a;shigen 提到函数式接口&#xff0c;最常见的就是lambda表达式&#xff0c;IDEA也有智能的提示&#xff1a; 最后改成这样的就是最简洁的、IDEA希望的风格&#…

Android UI绘制原理:UI的绘制流程是怎么样呢?为什么子线程不能刷新UI呢?讲解大体的流程是怎么样的

目录&#xff1a; 一、 为什么要学习android UI绘制原理呢&#xff1f;对我们有什么帮助&#xff1f; 1.解决复杂布局问题&#xff1a;了解UI绘制原理可以帮助我们更好地理解和解决布局问题&#xff0c;比如使用自定义View、优化布局层级等。 2.知道何时触发布局&#xff08;…

【AI大模型】基于docker部署向量数据库Milvus和可视化工具Attu详解步骤

&#x1f680; 作者 &#xff1a;“大数据小禅” &#x1f680; 文章简介 &#xff1a;本专栏后续将持续更新大模型相关文章&#xff0c;从开发到微调到应用&#xff0c;需要下载好的模型包可私。 &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 目…

zdppy_cache缓存框架升级,支持用户级别的缓存隔离,支持超级管理员管理普通用户的缓存

启动服务 import zdppy_api as api import zdppy_cachekey1 "admin" key2 "admin"app api.Api(routes[*zdppy_cache.zdppy_api.cache(key1, key2, api) ])if __name__ __main__:import zdppy_uvicornzdppy_uvicorn.run(app, host"0.0.0.0",…

TEngine框架之HybridCLR代码热更

自HybridCLR热更方案出现以来&#xff0c;像之前的主流toLua/xLua/ILRuntime瞬间不香了&#xff0c;算是跨世代的产物引起业界不小的轰动。HybridCLR是一个特性完整、零成本、高性能、低内存的近乎完美的Unity全平台原生c#热更新解决方案。想要详细了解HibirdCLR原理和使用的&a…