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

news2024/9/22 13:40:48
  •  作者简介:我是团团儿,是一名专注于云计算领域的专业创作者,感谢大家的关注
  •  座右铭:   云端筑梦,数据为翼,探索无限可能,引领云计算新纪元
  •  个人主页:团儿.-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.coloradmin.cn/o/2097339.html

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

相关文章

BERT 高频面试题八股文——基础知识篇

基础知识 1. 问:请简述自然语言处理(NLP)的主要研究目标是什么? 答:NLP的主要研究目标是使计算机能够理解、解释和生成人类语言。 2. 问:什么是BERT模型,它为什么重要? 答:BERT是一种预训练…

超级会员卡积分收银系统源码,一站式解决方案,可以收银的小程序 带完整的安装代码包以及搭建部署教程

系统概述 超级会员卡积分收银系统源码,是一款专为零售行业设计的综合性管理软件系统。该系统以高效的收银功能为核心,结合会员管理、积分系统、商品管理、库存监控、报表分析等多个功能模块,旨在帮助商家实现线上线下一体化经营,…

海康二次开发学习笔记7-流程相关操作

流程相关操作 流程的相关操作包括选择路径,导入流程,导出流程,运行流程等. 在开始前,扩展优化一下写法,供其他地方重复调用. /// <summary>/// 消息显示区显示消息/// </summary>/// <param name"msg"></param>public void AddMsg(string …

【windows】windows 如何实现 ps aux | grep xxx -c 统计某个进程数的功能?

windows 如何实现 ps aux | grep xxx -c 统计某个进程数的功能&#xff1f; 在Windows中&#xff0c;要实现类似Linux中ps aux | grep xxx -c的功能&#xff0c;即统计某个特定进程的数量&#xff0c;可以使用PowerShell或命令提示符&#xff08;cmd.exe&#xff09;来实现。 …

osgearth添加地形夸张系数VerticalScale时报E0393:不允许指针指向不完整的类类型的解决方法

如下图1所示: 图1 error C2027: 使用了未定义类型“osgEarth::TerrainEngineNode” E0393:不允许指针指向不完整的类类型“osgEarth::TerrainEngineNode”

SSM一篇就懂

01、初始Spring 什么是Spring&#xff0c;它有什么特点&#xff1f; Spring是一个容器框架&#xff0c;主要负责维护bean与bean之间的关系和生命周期。它具有以下特点&#xff1a; 控制反转&#xff08;IoC&#xff09;&#xff1a;通过依赖注入&#xff08;DI&#xff09;&…

自动化获取诊断信息(H3C网络设备)

介绍 在设备遇到个人无法处理的问题时&#xff0c;需要下载诊断信息发送给400处理哦&#xff0c;而通过传统的方式获取诊断信息需要通过多个步骤来获取&#xff0c;步骤繁琐&#xff0c;在设备数量过多的情况下&#xff0c;严重影响工作效率&#xff0c;而通过python自动化的方…

提交MR这个词儿您知道是什么意思吗?

作为测试的同学&#xff0c;是不是经常会听研发同学说提交MR呢&#xff1f;那么究竟什么是提交MR呢&#xff1f;在这篇文章中会告诉大家&#xff01; 在Git中&#xff0c;提交MR&#xff08;Merge Request&#xff0c;合并请求&#xff09;是在进行协作开发的一种常见方式&…

UPDF 编辑器怎么样,值得购买吗?

如今 PDF 工具可谓是五花八门&#xff0c;但不少工具在滥竽充数&#xff0c;软件里塞满广告&#xff0c;界面也是十几年前的风格。 近一两年火起来的 UPDF 编辑器&#xff0c;凭借体积轻巧、视效轻盈、体验轻快、多平台等特点&#xff0c;在同类产品中脱颖而出&#xff0c;成为…

科研绘图系列:python语言散点图和密度分布图(scatter density plot)

介绍 散点图(Scatter Plot)是一种数据可视化技术,用于显示两个变量之间的关系。它通过在直角坐标系中绘制数据点来展示数据的分布和趋势。每个数据点在横轴(X轴)和纵轴(Y轴)上都有一个坐标值,分别对应两个变量的数值。 密度分布图是一种统计图表,用于表示数据的分布…

100特殊效果技能包:100 Special Skills Effects Pack

总计177个, 包括100个概念FX&#xff01; 这个资源包含几个 FX。 魔术&#xff0c;冰块&#xff0c;鲜血&#xff0c;恶魔&#xff0c;毒药&#xff0c;行星&#xff0c;斜线&#xff0c;爆炸和其他特殊效果正等着您。 该asset的主要功能。: [1]:Standard, URP&HDRP(Distor…

unity游戏开发——标记物体 一目了然

Unity游戏开发:标记物体,让开发变得一目了然 “好读书&#xff0c;不求甚解&#xff1b;每有会意&#xff0c;便欣然忘食。” 本文目录&#xff1a; Unity游戏开发 Unity游戏开发:标记物体,让开发变得一目了然前言1. 什么是Tag&#xff1f;2. Unity中如何添加和管理Tag步骤1&am…

大模型工作交互过程

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl大模型的交互流程是一个复杂而精细的过程,它涉及从接收输入到生成输出的多个步骤。比如:你提问:中国的首都是哪里?它回答:中国的首都是北京;作为例子,大模型的工作流程可以大致归纳为以下几…

图片压缩算法优化

正常的rgb三通道的图片用以下压缩算法没啥问题 def zip_img0(image_bytes):压缩图片 :param image_bytes::return:try:image_np np.frombuffer(image_bytes, np.uint8)image cv2.imdecode(image_np, cv2.IMREAD_COLOR)h, w, c np.shape(image)max_size 600ratio min(1, m…

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

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

黑马-Cloud21版-实用篇02:Nacos配置管理、集群,Feign远程调用、Feign的抽取优化,Gateway服务网关、网关中的跨域问题

SpringCloud实用篇02 0.学习目标 1.Nacos配置管理 Nacos除了可以做注册中心&#xff0c;同样可以做配置管理来使用。 1.1.统一配置管理 当微服务部署的实例越来越多&#xff0c;达到数十、数百时&#xff0c;逐个修改微服务配置就会让人抓狂&#xff0c;而且很容易出错。我…

编译器基础介绍

随着深度学习的不断发展&#xff0c;AI 模型结构在快速演化&#xff0c;底层计算硬件技术更是层出不穷&#xff0c;对于广大开发者来说不仅要考虑如何在复杂多变的场景下有效的将算力发挥出来&#xff0c;还要应对 AI 框架的持续迭代。AI 编译器就成了应对以上问题广受关注的技…

中资优配:什么股票容易涨停?放量涨停意味着什么?

什么股票简单涨停&#xff1a; 1、抢手题材股。每当商场出现新的方针改变、职业改造或严重利好事情时&#xff0c;相关股票往往会遭到资金的会合注重&#xff0c;从而引发涨停潮。例如一些职业股票在方针支撑和技术打破的两层驱动下&#xff0c;很简单成为商场短线资金追逐的抢…

qt实现三原色滑动条变色

在qt中有这样一个控件&#xff1a; 就是这个Horizontal Slider他的作用相信大家都知道了&#xff0c;也就是通过滑动来改变数值。今天我们就使用这个控件实现一个三原色滑动变色。 实现效果&#xff1a; 1.创建UI界面 这个就不用多说了&#xff0c;这个大家就按照我的这个去…

数据结构-双链表-详解

数据结构-双链表-详解 1.前言2.结构2.1双向2.2带头2.3循环 3.实现3.1结构体3.2初始化与删除初始化删除 3.3插入尾插头插 3.4删除尾删头删 3.4查找3.5pos位置的插入删除 1.前言 链表总共有八种&#xff1a;双向、单向&#xff1b;带头、不带头&#xff1b;循环、不循环。(8 2 …