为什么80%的码农都做不了架构师?>>>

在数据库 Schema 设计理论方面,一直有一个被大家奉为“葵花宝典”的规范化范式理论。通过范式 理论所设计的数据库 Schema 逻辑清晰,关系明确,扩展方便,就连存储的数据量也做到了尽可能的少, 尤其是当范式级别较高的时候,几乎找不到任何的冗余数据。在很多人眼里,数据库 Schema 满足的范式 级别越高则该 Schema 设计的越优秀。 但是,很多人忽略了一点,那就是产生该理论的时期和出发点。关系性数据库的规范化范式理论诞 生于上世纪七十年代初,最根本的目的是让数据库中尽量的去除数据的冗余,保持数据的一致,使数据 的修改简单。 实际上,尽量去除数据的冗余不仅仅是为了让我们查询相同的数据量的时候能够多返回几条记录, 还有一个很重要的原因就是在当时的那个年代,数据的存储空间是及其昂贵的,而且存储设备的容量也 都非常的小,这一点在硬件存储设备发展如此迅速的如今,空间大小已经不再是太大的问题了。 而范式理论中的数据一致性和使数据修改简单保证主要是依靠添在数据库中添加各种约束来保证, 而各种约束对于数据库来说本身其实就是一个非常消耗资源的事情。 所以,对于基于性能的数据库 Schema 设计,我们并不能完全以规范化范式理论来作为唯一的指导。 在设计过程中,应该从实际需求出发,以性能提升为根本目标来展开设计工作,很多时候为了尽可能提 高性能,我们必须做反范式设计。

1、适度冗余 - 让 Query 尽两减少 Join
2、大字段垂直分拆 - summary 表优化 
3、大表水平分拆 - 基于类型的分拆优化 
4、统计表 - 准实时优化 
5、合理的数据类型
6、合理的命名规则

转载于:https://my.oschina.net/xwinie/blog/208912

数据库之Schema设计相关推荐

  1. TiDB数据库schema设计之表结构设计

    TiDB数据库schema设计之表结构设计 Schema的KV映射原理 聚簇表和非聚簇表 非聚簇表的写热点问题 分区表 TiDB的数据类型 TIDB的自增ID 聚簇表自增ID的写热点问题 Schema ...

  2. PCTP考试学习笔记之二:TiDB 数据库 schema 设计

    作者: OnTheRoad 原文来源: https://tidb.net/blog/6a1007ff 本系列学习笔记根据官方课程<TiDB 高级系统管理 [TiDB v5]>整理,感谢官方 ...

  3. mysql schema设计_mongodb 的 schema 设计方法

    mongodb 的schema设计方法 前言 mongodb是NoSQL的代表,从使用关系型数据库(MySQL)到使用非关系型数据库(mongodb),其中的一些以前的设计的思维惯性总是在不知不觉的影 ...

  4. 数据库sql课程设计_SQL和数据库-初学者完整课程

    数据库sql课程设计 In this course, Mike Dane will teach you database management basics and SQL. 在本课程中,Mike D ...

  5. 数据库学习,树形结构的数据库表Schema设计方案

    2019独角兽企业重金招聘Python工程师标准>>> 程序设计过程中,我们常常用树形结构来表征某些数据的关联关系,如企业上下级部门.栏目结构.商品分类等等,通常而言,这些树状结构需 ...

  6. 用Visio进行数据库建模、设计和实现

    用Visio进行数据库建模.设计和实现 摘要:Visio是微软著名的图形软件,功能强大.使用Visio完成绘图任务时能够显著地提高工作效率和质量.目前功能最全的Visio版本是VSEA(Visual ...

  7. 伤感网络验证系统_可验证云数据库架构与设计

    区块链的发展到了一个关键阶段.向左走,是一眼望不到尽头的公链和交易所.向右走,是一脸茫然的探寻:区块链如何和古典互联网行业相结合.就像文章<货币.区块链和社交扩展性>所阐述的根本原理,区块 ...

  8. 如何实现高容量大并发数据库服务 | 数据库分布式架构设计

    袋鼠学院和优云.阿里云联合举办的沙龙结束之后,总是有小伙伴们来问PPT内容,想要进一步了解Topic内容.(哦,对了对了,竟然还有小伙伴专门冲着袋鼠云去听沙龙,感动cry~~) 千呼万唤,忙成狗的袋鼠 ...

  9. 『数据库』怎样设计一个数据库

    数据库从入门到精通:戳我 数据库设计概念 数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构, 并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的 ...

最新文章

  1. 解决:Plugin ‘maven-compiler-plugin:3.1‘ not found
  2. 英特尔首款AI芯片终于发布:训练推理两用,历时4年花费5亿美元买来4家公司...
  3. 百合网婚礼产品总监徐德生:电商类产品的转化率为何总是令人心碎?
  4. 卸载后清理干净_想要清理你的Mac?选这几款软件就对了
  5. 解决Tomcat下源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源表示
  6. python多进程通信manager_python中进程间数据通讯模块multiprocessing.Manager的介绍
  7. 自动驾驶硬件系统架构概述
  8. 邱昭良:“碎片化”学习真是“一场骗局”吗?
  9. 【数学建模学习④】飞行管理问题
  10. 文件上传绕waf(waf拦不住我)
  11. Excel中如何连续使用格式刷
  12. JavaScript中slice()、splice()、split()、join()、unshift()、push()
  13. 详解eclipse如何配置tomcat
  14. Pixhawk原生固件PX4之常用函数解读
  15. spring boot 集成框架事例
  16. 计算机主机为什么漏电,电脑机箱漏电怎么回事
  17. CASS11解决细等线字体样式显示为问号
  18. N70/N72常见问题汇总
  19. C++报错:fatal error LNK1169: 找到一个或多个多重定义的符号
  20. python简单圣诞树手工折纸_简单折纸圣诞树教你如何制作折纸圣诞树

热门文章

  1. P1096 $Hanoi$双塔问题
  2. 阅面科技赵京雷:全面拥抱AI2.0时
  3. AutoScaling 弹性伸缩附加与分离RDS实例
  4. MYSQL中LIMIT用法_后台分页
  5. centos6.9配置LAMT页面500错误解决
  6. CSS实现 全兼容的多列均匀布局问题
  7. This Android SDK requires Android Developer Toolkit version 22.6.2 or above.
  8. 巧用CSS提升表格呈现性能
  9. opencv图像特征检测之斑点检测
  10. GitHub从入门到精通