深入探索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大小


期待您的关注~

 

  • 13
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值