数据库架构--物理设计

数据库设计(5)_物理结构设计 物理结构的设计,也即是设计数据在磁盘上的存储,需要考虑:安全(容灾)、性能(IO竞争少)、服务器资源利用率高。 通常当前数据库只使用一份ONLINE的数据源,至于分布式存储已经上升到服务器架构的设计,这里不作讨论。以下仅简单描述非分布式存储的情况,主要从磁盘、文件、表数据三方面来说。一、磁盘RAID0提供了最好的读写性能,但RAID0没有提供冗余恢复策略,所以很少单独全用。通常,使 阅读详情
物理设计
1、定义数据库、表及字段的命名规范
1.1、数据库、表及字段的命名要遵守:可读性原则
1.2、数据库、表及字段的命名要遵守:表意性原则  
1.3、数据库、表及字段的命名要遵守:长名原则(适度)

2、选择合适的存储引擎
存储引擎     事务      锁粒度              主要应用        忌用
MyISAM     不支持   支持并发插入的表级锁  SELECT,INSERT  读写操作频繁
MRG_MYISAM 不支持   支持并发插入的表级锁  分段归档,数据仓库 全局查找过多的场景
Innodb     支持       支持MVCC的行级锁    事务处理       无
Archive    不支持      行级锁            日志记录,只支持insert,select   需要随机读取,更新,删除
Ndb cluster  支持     行级锁              高可用性       大部分应用

3、为表中的字段选择合适的数据类型
原则:当一个列可以选择多种数据类型时,应该优先考虑数字类型,其次是日期或二进制类型,最后是字符类型。对于相同级别类型,应该优先选择占4用空间小的数据类型

3.1、如何选择正确的整数类型
2的n次幂   2的n-1次幂~2的n-1次幂-1
列类型     存储空间       取值范围signed     unsigned
tinyint     1字节           -128-127            0-255
smallint    2字节           -32768-32767        0-65535
mediumint   3字节          -8388608-838607      0-16777215
int    4字节      -2147483648-21474483647  0-4294967295
bigint      8字节      -9223372036854775808-9223372036854775807  0-18446744073709551615

3.2、如何选择正确的实数类型
列类型            存储空间                                            是否精确类型
FLOAT            4个字节                                                   否
DOUBLE          8个字节                                                   否
DECIAML         每4个字节存9个数字,小数点站一个字节        是

3.3、如何选择varchar和char
注意:存储是以字符为单位,不是以字节为单位
utf-8一个字符占用3个字节

VARCHAR类型的存储特点
varchar用于存储长字符串,只占用必要的存储空间
列最大长度小于255则只占用一个额外字节用于记录字符串长度
列最大长度大于255则需要用2个额外字节用于记录字符串长度

VARCHAR长度的选择问题
使用最小的符合需求的长度
注意:MySQL5.7之前的版本,varchar的长度修改时需要锁表

适用场景
字符串列的最大长度比平均长度大很多
字符串列很少被更新(为了生成碎片)
使用了多字节字符集存储字符串

char类型的存储特点
char类型是定长的
字符串存储在char中的列中会被删除末尾的空格,varchar不会
char 最大的宽度为255,如果超过需要选择varchar
适合的场景
char类型适合存储所长度近似值(如md5值,手机号)
char类型适合短字符串
char类型适合存储经常更新的字符串列

如何存储日期数据
DATATIME类型
以YYYY-MM-DD HH:MM:SS格式存储日期时间
与时区无关,占用8个字节的存储空间
时间范围10000-01-01 00:00:00到9999-12-31 23:59:59
TIMESTAMP类型
存储时间戳占用4个字节
时间范围:1970-01-01到2038-01-19
依赖于所指定的时区
在行的数据修改时可以自动修改timestamp 
date类型和time类型
1、把日期部分存储为字符串(至少要8个字节)
2、使用int类型来存储(4个字节)
3、使用datetime类型(8个字节)
date类型的优点:
1、占用的字节数比使用字符串、datetime、int存储要少,使用date类型只需要3个字节
2、使用Date类型还可以利用日期时间函数进行日期之间的计算
3、保存时间:1000-01-01到9999-12-31之间的日期
time类型用于存储时间数据,格式为HH:MM:SS
注意事项
1、不要使用字符串类型来存储日期时间数据
1.1、日期时间类型通常比字符串占用的存储空间小
1.2、日期时间类型在进行查找过滤时可以利用日期来进对比
1.3、日期时间类型还有着丰富的处理函数,可以方便的对日期类型进行日期计算
2、使用int存储日期不如使用timestamp类型

4、建立数据库结构
Innodb主键
1、主键应该尽可能的小
2、主键应该是顺序增长的(插入数据的插入效率)
3、 Innodb的主键和业务主键可以不同
数据库结构的设计步骤,具体实例 数据库结构设计的步骤 1.需求分析,全面了解产品设计的存储需求,要存储什么数据,这些数据有什么特点,数据处理的响应时间,是否是批量处理,数据的完整性确定要存储的真正数据,因为要和非开发的人员进行沟通 2.逻辑设计阶段,在这个阶段不用考虑数据库使用的存储引擎什么数据库,逻辑设计阶段要弄清楚数据实体之间的逻辑关系,这个阶段是解决数据冗余和数据维护异常(插入增加删除问题)的阶段,这个阶段的工作直接影响了... 阅读详情

相关推荐

27、数据库物理设计与分布式架构全解析

本文全面解析了数据库的物理设计和分布式架构,涵盖了查询成本评估与优化、数据库物理设计参数设置、索引选择与优化流程、分布式数据库架构类型及问题解决策略、OLTP与OLAP系统对比,以及数据复制与相关技术问题的处理方法。通过这些内容,读者可以更好地理解如何根据实际需求选择合适的数据库设计和优化方案,以提升系统的性能和可用性。

assembly8low的博客 54

7.5 物理结构设计

物理结构设计:是将逻辑数据模型映射到物理存储的过程,依赖于选用的数据库管理系统。目的:优化存储结构和存取方法,以满足应用要求,提高时间和空间效率。目的:在多用户共享的数据库系统中,选择适合的存取路径以满足不同用户的应用需求。方法类型:常用的存取方法包括索引方法(如B+树索引和hash索引)和聚簇方法。目的:确定数据的存放位置和存储结构,包括关系、索引、聚簇、日志、备份等。重要性:涉及存取时间、存储空间利用率和维护成本的权衡。定量分析:进行精确的存储空间、存取时间和维护代价的计算。性能权衡。

tang7mj的博客 4561

数据库系统入门经典课程精讲:A First Course in Database Systems实战指南

在关系模型中,“键”不仅仅是个技术概念,更是一种身份认同机制。超键(Superkey):能唯一标识元组的一组属性候选键(Candidate Key):极小的超键(不能再少任何一个属性)主键(Primary Key):从候选键中选出的一个作为主要标识比如在员工表中:{emp_id}是候选键{ssn}也是候选键(假设全国唯一)是超键但不是候选键(非极小)选择哪个作为主键?这不是技术问题,而是业务决策。通常我们会选emp_id。

weixin_34511754的博客 872

数据库设计之物理结构设计

为一个给定的逻辑数据模型选定一个最合适应用要求的物理结构的过程,就是数据库的物理设计。数据库的物理设计通常分为两步:(1) 确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构。(2) 对物理结构进行评价,评价的重点是时间和空间效率。如果评价结果满足原设计要求,则可进入到物理实施阶段,否则,就需要重新设计或修改物理结构,有时甚至还要返回逻辑设计阶段修改数据模型。

tester Xclincer的博客 8951

Windows11家庭版开启虚拟化与WSL安装操作手册

Windows 11 家庭版完全支持 WSL 2,无需升级到专业版即可享受 Linux 开发环境。通过本手册介绍的步骤,您可以顺利安装和配置 WSL,并掌握系统更新后的维护技巧。WSL 为开发者提供了在 Windows 环境下使用 Linux 工具链的便利,尤其适合需要跨平台开发的场景。随着使用深入,您会发现 WSL 生态系统的强大之处,它不仅能提高开发效率,还能让 Windows 用户体验到 Linux 的强大功能。建议定期查看微软官方文档,了解 WSL 的最新功能和最佳实践。

m0_54846764的博客 3026

【2026-Spark实验一-Windows中安装Spark环境】

本文详细介绍了在Windows系统中配置Spark 3.5.8开发环境的完整流程。主要内容包括:安装JDK 8并配置环境变量,下载并解压Spark 3.5.8预编译版,设置SPARK_HOME系统变量,配置Hadoop的winutils工具解决Windows兼容性问题。通过spark-shell和SparkPi示例程序验证环境配置成功,确保Spark能够正常运行分布式计算任务。文中特别强调了路径命名规范、环境变量设置顺序等关键细节,提供了完整的配置截图和验证方法,帮助开发者快速搭建稳定的Spark学习环境。

pblh123的专栏 1588

数据库物理设计

物理设计 物理设计就是根据所选择的关系型数据库的特点对逻辑模型进行存储结构设计。它涉及的内容包含以下4方面:1. 定义数据库、表及字段的命名规范;2. 选择合适的存储引擎;3. 为表中的字段选择合适的数据类型;4. 建立数据库结构。 定义数据库、表及字段的命名规范 数据库、表及字段的命名要遵守可读性原则 数据库、表及字段的命名要遵守表意性原则 数据库、表及字段的命...

weixin_30394981的博客 2615

Ubuntu运行vmware时报错Vmware Unable to install all modules!Use shipped Linux kernel AIO access library解决。

Ubuntu运行vmware时报错Vmware Unable to install all modules! vmware --version 提示下面内容: [AppLoader] Use shipped Linux kernel AIO access library. An up-to-date "libaio" or "libaio1" package from your system is preferred. VMware Workstation 16.1.2 build-17966106

wto882dim的博客 2849

Vertica使用Database Designer创建完整的设计

Vertica Database Designer 分析逻辑架构,示例数据库可以分析实力查询。 创建可自动部署或手动部署的物理架构设计(一组投射) 任何不具备数据库专业知识的人员均可使用 可以随时运行和重复运行,可以实现进一步优化,而且无需停止数据库 使用策略提供最佳查询性能和数据压缩 使用Database Designer创建全面设计,为数据库中所有的表创建投射。当然也可以使...

weixin_30363509的博客 261

微生物16S数据上传NCBI的SRA库

本篇内容仅包括:俺自己的实验收集了淡水、淡水沉积物、海水、海草附着微生物样品,测序所得的Fastq格式数据,在文章投稿发表时被要求数据需上传NCBI的SRA库,得到一个PRJNA2347899这样子的IDs。仅解决了这个上传过程!

Xf_Niu的博客 7435

WPS访问权限不足怎么解决??具体怎么操作?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值。

**My Coding Family** 4171

14、数据仓库设计与物理实现全解析

本文全面解析了数据仓库的设计与物理实现过程,涵盖从源系统表的映射与转换、规范化数据存储(NDS)的建模,到基于SQL Server的物理数据库部署。详细阐述了硬件平台选择、服务器规格配置、操作系统与版本选型、许可证策略,并介绍了后续的维护管理措施,如监控、备份与恢复。通过流程图和总结表格直观展示关键步骤,帮助构建高效、可扩展的企业级数据仓库体系。

tree8的博客 58

【异常】OpenClaw 项目 `fetch failed` 报错问题排查与解决方案Response interrupted: TypeError: fetch failed

针对无超时控制、异常兜底缺失导致的请求中断,封装标准化的安全请求工具,一次性解决超时控制、异常捕获、日志埋点三大问题,全项目替换原生。:将项目运行的 Node.js 版本升级至 18.x 及以上 LTS 版本,使用 Node.js 内置的稳定版。实现的网络请求环节,包括但不限于:第三方开放接口调用、内部服务接口通信、跨域资源请求、外部配置拉取等场景。:针对无法升级 Node.js 版本的存量环境,通过社区稳定兼容包替换原生。类型异常,直接造成业务请求响应中断。第二步:业务代码改造,替换原生。

奶爸的编程之路,也就一周冷个三天 367

数据仓库模型设计(收藏版)

数据仓库模型设计(收藏版)

ytp552200ytp的博客 5791

【YOLOv11多模态融合改进】| CVPR2025 LCA轻量交叉注意力 双向模态交叉引导 + 双支路噪点抑制,兼顾纹理与热目标特征融合

可见光模态富含纹理、色彩、边缘细节,但夜间/低照度场景信噪比极低,暗区噪声泛滥;红外模态依靠热辐射凸显弱小目标、暗区物体轮廓,但缺失真实色彩与精细纹理。简单拼接/逐加融合仅做浅层特征叠加,无法建立可见光纹理、红外热特征的双向引导关联,两类模态互补信息无法精准互通;普通自注意力仅单模态内部建模,跨模态交互匮乏,红外热目标易被可见光暗噪声淹没,可见光有效纹理易被红外灰度信息覆盖;

Limiiiing的博客 120

【人工智能】RAG如何根据实际需求选择和进行文档解析(如 PDF、Word、TXT、网页等)?

文档解析的核心在于根据解析目标、文档类型和处理量选择合适工具。PDF、Word、TXT和网页各有特性:PDF需区分可编辑与扫描版,Word需处理结构化内容,TXT简单但需注意编码,网页需应对动态内容。解析场景包括提取纯文本、结构化数据、保留格式和批量处理。非技术用户可借助工具如Adobe Acrobat、WPS和在线OCR,技术用户可通过编程实现自动化。通用流程为:明确目标、分析文档属性、选择工具并测试优化。核心是“工具适配需求”,无需追求万能方案。

奶爸的编程之路,也就一周冷个三天 506

九、数据库系统-2.数据库设计阶段

数据库设计包括需求分析、概念结构设计、逻辑结构设计和物理设计四个阶段。通过数据流图和数据字典明确需求,使用ER模型抽象数据并解决冲突,将概念模型转化为关系模型进行规范化处理,并在物理设计中优化存储和索引。

qq_41019389的博客 1172

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

1、数据仓库入门指南

本文全面介绍了数据仓库的定义、核心组件、工作流程及典型架构类型,涵盖从源系统到前端分析的完整数据流动过程。深入解析了ETL流程、数据建模方法(维度与规范化设计)、物理数据库设计要点以及数据提取技术。同时探讨了瀑布式与迭代式开发方法、需求定义策略,并展望了数据仓库在非结构化数据处理、实时分析和SOA架构下的未来发展趋势,为企业构建高效、可扩展的数据仓库提供系统性指导。

tree8的博客 49

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

数据仓库架构和建设方法论

1.数据仓库概要1.1.数据仓库起因在建设数据仓库之前,数据散落在企业各部门应用的数据存储中,它们之间有着复杂的业务连接关系,从整体上看就如一张巨大的蜘蛛网:结构上错综复杂,却又四通八达...

大数据星球-浪尖 766

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

5000字,详解数据仓库构建方法论和实践

来源:大数据真好玩全文共5676个字,建议阅读10分钟本文主要讨论数据仓库的构建方法论,包括数据仓库的价值、选型、构建思路。随着数据规模膨胀和业务复杂度的提升,大型企业需要构建企业级的数据仓库(数据湖)来快速支撑业务的数据化需求,与传统的数据库构建不通,数据仓库即是OLAP场景,偏于历史数据的存储/分析,用冗余存储换取数据价值。01 数据仓库与数据库的区别所有的应用系统都会涉及到数据库,针对...

大数据星球-浪尖 764

数据仓库架构设计

一. 数据仓库架构,是IT架构的一个分支,随着数据在企业的核心作用的增强,数据仓库的架构日益重要。数据仓库架构由于其技术选择非常广泛,看上去复杂,不过背后有一套比较稳定的思路,这也是数据仓库架构设计的一个要点,稳定中蕴含变化,变化中蕴含稳定。 总 体来说,数据仓库架构分成两大块,一是硬件架构,二是软件架构。硬软架构又可以分成封闭式和开放式。封闭式硬件架构代表厂商有teradata,其硬件是 专...

weixin_30692143的博客 120

计算机三级数据库(备考自用)

本文章是我自己备考数据库三级做的笔记,内容比较杂乱,个人建议刷题就可以了。

hrbhrb802的博客 2862

软考笔记(六)高级系统架构师/分析师:数据库

数据库模式 三级模式、两级映射 外模式、模式、内模式 外模式/模式映射、模式/内模式映射 外模式:External Schema或Sub Schema,用户模式,是数据库用户能看见和使用的局部数据的逻辑结构,与某一应用有关的数据逻辑表示。外模式通常是模式的子集,一个数据库有多个外模式。概念结构设计阶段的产物,E-R图。 模式:Schema,也成为逻辑模式,数据库中全体数据的逻辑结构和特征的描述,所有用户的公共数据视图。模式实际上是数据库数据在逻辑级上的视图。...

null 1461

Atitit.数据库表的物理存储结构原理与架构设计与实践

Atitit.数据库表的物理存储结构原理与架构设计与实践     1. Oracle和DB2数据库的存储模型如图: 1 1.1. 2. 表数据在块中的存储以及RowId信息3 2. 数据表的物理存储结构 自然数序,与btree存储结构3 2.1. 普通表中记录的存储顺序随机顺序存储3 2.2. 数据库以B树格式储存, 4 3. 分区4 4. 行记录的物理结构 以及 RowId

attilax的专栏 1500

数据仓库设计的思考

讲到数据仓库,很多人就会想到首先按照行业规范和客户需求调研、做源系统数据分析,然后设计主题,最后设计应用所需的事实表、维表;结构上基本分为三层:ODS-DW-DM。从理论的角度来看,数据仓库就是数据驱动的、稳定的、指标统一、能存放所有历史数据的;从需求方的角度来看,能满足他们所有的报表、查询和分析数据需求;从开发人员的角度来看,能够快速、高效、便捷的从数据仓库中取到数据,完成项目开发;他们并不ca

南山南的Python和大数据学习笔记 254

35 张图带你了解 Oracle AI Database 26ai 技术架构(中)

一个表空间可以包含分配给不同模式的段,而一个模式的段可以跨越多个表空间。应用程序容器与 CDB 本身一样,可以包含多个应用程序 PDB,并使这些 PDB 能够以与 CDB 根目录共享数据和元数据的方式共享数据和元数据,就像CDB 根目录与种子 PDB、用户创建的 PDB 以及插入到 CDB 根目录的应用程序容器共享数据和元数据一样。在共享撤销模式下,单实例 CDB 只有一个活动的撤销表空间,而 Oracle 实时应用集群 (Oracle RAC) CDB 的每个实例都有一个活动的撤销表空间。

JiekeXu的博客 974
上一篇: 数据库架构--结构优化
下一篇: 数据库架构--mysql复制
xiaochen1999
博客等级 码龄12年 24粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值