数据库逻辑结构长啥样

上周有客户问我MySQL数据库结构,让我有点困惑。
后来慢慢想通了。
别说废话了。
我们会根据您发送的信息进行分解并直接发布。

在InnoDB存储引擎中我们看到了相当层次的关系:
1 .表空间(Tablespace):放置所有数据的顶层容器。
有系统表空间和独立表空间。
每个表在独立的表空间中单独使用。
业绩比较好,但是管理很烦人。
2 02 3 年调试系统流量时,发现如果把大表分成独立的表空间,备份速度会快很多。
但这取决于业务场景。

2 段:表空间被划分为段,如段(数据存储)、索引段(B+树存储)、循环段(用于MVCC)。
我遇到的警告是我忘记返回监视器大小部分。
有一天,CPU 突然飙升到 3 00%。
安装完后发现没有及时大范围清理,导致几乎整个集群宕机。

3 空间:每个段占用1 MB的连续空间,每个空间有1 6 页。
特别适合大型手表,休息时可以带回来。
在我位于上海的一个商场的项目中,我使用了 1 MB 的区域大小,并结合顺序 I/O,查询延迟比默认的 5 1 2 KB 区域降低了 3 0%。

4 页:最小单位,1 6 KB。
这里存储行数据和节点数据。
我不太清楚该页面是如何设置的。
记录头的槽位和信息太复杂,直接使用就不用赘述了。

在数据库系统的架构中,方案更像是一个三步洋葱:
1 .外部模式:用户可以看到的组件,例如表和视图。
不同的用户看到的东西不同,权限控制很关键。
上次我雇佣一个客户时,他强调了隔离外部模型的重要性,以便财务部门随机删除销售记录。

2 逻辑模式:实体类型关系的逻辑全局设计。
创建语句表(DDL)属于该表。
我对此不太确定,因为如果逻辑发生变化我肯定会改变这一层。

3 内部模式:单独的物理存储,例如索引类型和文件格式。
InnoDB聚集索引取决于内部模式。
当我在北京做的最好的时候,我发现通过将InnoDB默认的1 6 KB页面改为8 KB,搜索速度变慢了。
后来发现是内部模式没有调整好。

最后,我对MySQL逻辑层次结构的理解是:
1 .顶层:MySQL Server,处理连接和解析。
我不常接触这个领域,所以了解不多。

2 中间层:数据库(如company_db),包含逻辑。
实际操作中,表和视图都是在这里建的。

3 底层:表格(as a table),由行和列组成。
这些字段定义约束类型和数据集的顺序。
我在这方面有很多经验。
当我在 2 02 2 年更换 ERP 系统时,我将记录拆分到不同的数据库中(集中与)。
维护成本直接降低5 0%。

有适合你的东西。
这些措施确实是为了方便和减少管理而设计的,但要根据实际情况来使用。
我还在想这件事,至于这个三阶分布会不会再次消散。

三分钟带你分清 Mysql 和 Oracle 之间的误区

MySQL 和 Oracle 的区别: 1 .本质:Oracle是商业数据库,MySQL是开源数据库。
2 .安全性:Oracle有多个安全级别,并且基于MySQL。
3 .权限:Oracle管理角色,MySQL逐级权限。
4 .迁移:Oracle对象语法不同,MySQL区分大小写。
5 、存储类型:Oracle支持CHAR和NVARCHAR2 ,MySQL支持UTF8 MB4 6 、主键:MySQL AUTO_INCRMENT、Oracle 序列。
7 . 引号:Oracle双引号对象名,MySQL没有限制。
8 . 页:MySQL LIMIT、Oracle ROWNUM。
9 . 数据类型:MySQL INT、Oracle NUMBER(p)。
1 0.集成:MySQL数据录入、Oracle表空间/CDB/PDB。

mysql数据chunk的类似

2 02 3 年,一位朋友询问mysql chunks。

没有直接的块概念。
逻辑结构大致可以理解。

页面是基本单位。
默认为 1 6 KB。
最小的逻辑结构。
阅读和写作的基本单位。
可以用作块。

区域是页面的集合。
最小分配单位。
它由连续的页面组成。
也用作块。

段是区域的集合。
独立的逻辑结构。
存储表索引等。
新对象创建新段。
也用作块。

尖端的桌面空间。
表空间对应于数据文件。
管理您的数据和索引。
从宏观上看,这是一个chunk容器。

InnoDB也有一个缓冲池。
缓存常用数据。
减少磁盘IO。
请加快速度。
缓冲池也用作块。

就是这样。