低代码使用问题之“规范化”和“反规范化”在设计数据库时应该如何权衡

简介: 低代码使用问题之“规范化”和“反规范化”在设计数据库时应该如何权衡

问题一:能否给出“写扩散”的一个实际案例?


能否给出“写扩散”的一个实际案例?


参考回答:

群发消息的场景。比如,往每个群员的收件箱中发一个消息,虽然这样要写很多冗余的数据,但当每个群员阅读消息时,性能会好很多,因为只需要查询自己的收件箱,而不需要去一个集中的地方拉取数据。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/639163



问题二:“规范化”的数据库设计有什么特点?


“规范化”的数据库设计有什么特点?


参考回答:

主张每张表都是原子的,不含有不属于该维度的冗余数据。在读取时,通常需要通过外键join来获取其他维度的数据。这种设计对于写性能是非常友好的,但读取时可能需要查询大量其他维度的数据。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/639164



问题三:“反规范化”为什么在互联网中越来越受欢迎?


“反规范化”为什么在互联网中越来越受欢迎?


参考回答:

“反规范化”在互联网中越来越受欢迎主要有两点原因。

第一,很多互联网场景是读多写少,优化读取性能更为重要。

第二,很多新兴的no sql数据库为了提升水平扩展能力,不支持join操作,因此更倾向于“反规范化”的设计。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/639165



问题四:查询驱动(query-driven)的库表设计是什么样的?


查询驱动(query-driven)的库表设计是什么样的?


参考回答:

查询驱动(query-driven)的库表设计是针对每一种查询视图,设计一张单独的表。比如在MongoDB中,可以针对购物车视图单独新建一个集合,集合中的每个文档就是完整的购物车记录。这种设计方式能够直接满足特定的查询需求,提高查询效率。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/639166



问题五:“规范化”和“反规范化”在设计数据库时应该如何权衡?


“规范化”和“反规范化”在设计数据库时应该如何权衡?


参考回答:

在设计数据库时,“规范化”和“反规范化”的权衡主要取决于具体的应用场景。如果应用是写密集型的,且数据一致性要求高,“规范化”可能更合适。如果应用是读密集型的,且对读取性能有较高要求,“反规范化”可能更为适合。但需要注意的是,随着冗余数据的增多,虽然读性能会提升,但写性能会下降,同时数据一致性的维护也会变得更加复杂。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/639170

相关文章
|
2月前
|
数据可视化 API PHP
低代码开发工具-学生管理系统-老师管理增删改查实现
低代码开发工具-学生管理系统-老师管理增删改查实现
42 5
|
4月前
|
存储 BI 数据库
|
4月前
|
存储 数据库
数据库规范化的类型及其重要性
【8月更文挑战第1天】
69 0
|
5月前
|
存储 Java 数据管理
数据库三范式设计与规范化过程详解
数据库三范式设计与规范化过程详解
|
6月前
|
存储 数据库 索引
关系数据库设计规范化
关系数据库设计规范化
111 2
|
7月前
|
存储 关系型数据库 数据库
关系型数据库表结构设计规范化(Normalization)
【5月更文挑战第13天】关系型数据库表结构设计规范化(Normalization)
270 5
|
7月前
|
存储 关系型数据库 MySQL
【MySQL】数据库规范化的三大法则 — 一探范式设计原则
【MySQL】数据库规范化的三大法则 — 一探范式设计原则
|
7月前
|
存储 SQL 缓存
软件体系结构 - 关系数据库(2)反规范化
【4月更文挑战第25天】软件体系结构 - 关系数据库(2)反规范化
131 1
|
7月前
|
存储 数据库
软件体系结构 - 关系数据库(1)规范化
【4月更文挑战第24天】软件体系结构 - 关系数据库(1)规范化
87 0
|
12天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
81 15
下一篇
DataWorks