分享好友 最新动态首页 最新动态分类 切换频道
数据库设计规范——反范式
2024-12-26 03:04

目录

数据库设计规范——反范式

1.概述

2.应用举例

3.反范式的新问题

4.反范式的适用场景


有的时候不能简单按照规范要求设计数据表,因为有的数据看似冗余,其实对业务来说十分重要。这个时候,就要遵循业务优先的原则,首先满足业务需求,再尽量减少冗余。

如果数据库中的数据量比较大,系统的UV和PV访问频次比较高,则完全按照MySQL的三大范式设计数据表,读数据时会产生大量的关联查询,在一定程度上会影响数据库的读性能。如果想对查询效率进行优化,反范式优化也是一种优化思路。此时,可以通过在数据表中增加冗余字段来提高数据库的读性能。

规范化 vs 性能

  1. 为满足某种商业目标 , 数据库性能比规范化数据库更重要
  2. 在数据规范化的同时 , 要综合考虑数据库的性能
  3. 通过在给定的表中添加额外的字段,以大量减少需要从中搜索信息所需的时间
  4. 通过在给定的表中插入计算列,以方便查询

举例1

员工的信息存储在 employees 表 中,部门信息存储在 departments 表 中。通过 employees 表中的department_id字段与 departments 表建立关联关系。如果要查询一个员工所在部门的名称

 

如果经常需要进行这个操作,连接查询就会浪费很多时间。可以在 employees 表中增加一个冗余字段department_name,这样就不用每次都进行连接操作了。

举例2

反范式化的 设计如下

举例3

我们有 2 个表,分别是 和 。商品流水表里有 400 万条流水记录,商品信息表里有 2000 条商品记录。

商品流水表

商品信息表

两个表是符合第三范式要求的。但是,在项目的实施过程中,对流水的查询频率很高,而且为了获取商品名称,基本都会用到与商品信息表的连接查询。

为了减少连接,可以直接把商品名称字段加到流水表里面。这样一来,就可以直按从流水表中获取商品名称字段了。虽然增加了冗余字段,但是避免了关联查询,提升了查询的效率。

新的商品流水表如下所示

反范式可以通过空间换时间,提升查询的效率,但是反范式也会带来一些新问题:

  • 存储 了
  • 一个表中字段做了修改,另一个表中冗余的字段也需要做同步修改,否则
  • 若采用存储过程来支持数据的更新、删除等额外操作,如果更新频繁,会非常
  • 在的情况下,反范式不能体现性能的优势,可能还会让数据库的设计更加

当冗余信息有价值或者能 的时候,才会采取反范式的优化

1. 增加冗余字段的建议

增加冗余字段一定要符合如下两个条件。只有满足这两个条件,才可以考虑增加冗余字段。

1)这个冗余字段

2)这个冗余字段查询的时候不可或缺

2. 历史快照、历史数据的需要

在现实生活中,经常需要一些冗余信息,比如订单中的收货人信息,包括姓名、电话和地址等。每次发生的订单收货信息都属于历史快照,需要进行保存,但用户可以随时修改自己的信息,这时保存这些冗余信息是非常有必要的。

反范式优化也常用在数据仓库的设计中,因为数据仓库通常存储历史数据,对增删改的实时性要求不强,对历史数据的分析需求强。这时适当允许数据的冗余度,更方便进行数据分析。

简单总结下数据仓库和数据库在使用上的区别:

1.数据库设计的目的在于捕获数据,而数据仓库设计的目的在于分析数据

2.数据库对数据的增删改实时性要求强,需要存储在线的用户数据,而数据仓库存储的一般是历史数据;

最新文章
AI绘画新风潮:使用搜狐简单AI生成超逼真美女写真全攻略
百度AI画图这款工具以其强大的背景生成能力著称,能够将简陋的草图转化为精彩的细致风景和角色形象。适合绘画基础较好,想要在背景设计上有所突破的用户。但在人物的细节处理上略显单薄,更多的是需要用户的后期调校。DeepArt这是一款实现
2025年1月1日起,养老退休将迎来这些新变化!
​​2025年1月1日起,新的养老金政策将正式实施,延迟退休、增加病残津贴、大龄领取失业保险金人员参保等规定都将影响到每一个职工。快来和金柚网一起看看吧! 2025年起,实施渐进式延迟法定退休年龄 十四届全国人大常委会第十一次会议通
2021年中国跨境电商行业市场现状及发展前景分析
3月5日上午,十三届全国人大四次会议在北京人民大会堂开幕。国务院总理李克强作《政府工作报告》。李克强总理:推动进出口稳定发展,发展跨境电商等新业态新模式。推动进出口稳定发展。加强对中小外贸企业信贷支持,扩大出口信用保险覆盖面
22200期p5预测专家 破兜排列五预测精准5注
2022199期排列五开奖号码开出3,3,2,8,6。本期开奖号码形态特点统计大小形态为小小小大大,大小比为2:3比例,奇偶形态为奇奇偶偶偶,质合形态为质质质合合,质合比为:3:2比例,和值为22点,和尾为2点,跨度为6点。本期排列五综合分析大小组合
618中端手机盘点(3000元以下) 骁龙8+Gen1和7+Gen2
马上了,我盘点了一下价格在3000元以下的搭载了骁龙8+Gen1和7+Gen2的中端,此次共罗列了9款手机,包括七款8+Gen1手机和两款7+Gen2手机,有的具有较高的性价比,有的性价比一般,我们通过参数来看一下。选取的搭载骁龙8+Gen1的机型有以下几
3D2005年周日连号走势图近1000期带连线
功能类福彩3D显示遗漏:显示/隐藏遗漏值,遗漏值是指自上期开出到本期间隔的期数。福彩3D遗漏分层:是将当前遗漏值用柱状图形标注。福彩3D分段线:是每五期使用分隔线,使横向导航更加清晰。福彩3D显示断区:在分区走势中使用,将开出0个号
2024双十一“最受欢迎”的10款手机排名,苹果仅排第三,荣耀第二
谁说手机市场已经跌入寒冬?最新出炉的双11手机热销榜单给市场带来了一股暖流。作为一个混迹科技圈多年的老编辑,每次看榜单都像在读一本故事书,里面写满了品牌的野心、产品的温度,还有消费者的精打细算。买之前一定要先搜一下「红包到手
360清理大师app极速版最新 8.1.3
360清理大师app:一款非常优秀的手机垃圾清理软件,拥有十分丰富的功能设计,软件采用了全新的插件支持,为用户提供了非常强力的手机清理服务,软件可以帮助用户深层次的清理手机空间,解决手机卡顿问题,感兴趣的朋友快来下载吧。【一键清
Docker部署-通过nginx管理web前端页面
本地已完成“测试管理平台”的开发: 实现方式:前后端分离 前端:html+script+css+javascript 后端:django框架 本地服务:django自带服务 数据库:django默认sqlite3数据库整个测试管理
ChatGPT & Kimi,选择什么?
这是我们的第122篇原创文章3月18日,AI创企月之暗面(Moonshot AI)宣布其智能助手Kimi在长上下文窗口技术上取得突破,无损上下文长度提升至200万字,目前已开启内测。一石激起千层浪,Kimi这一举动激活了整个国产大模型市场。3月22日晚上
相关文章
推荐文章
发表评论
0评