数据库表设计思路

2021-12-09  本文已影响0人  舞鹤Roc

数据库的知识从基础的SQL语法(DDL、DML、DCL、DQL)、事务(隔离级别&传播级别)、索引(下推&命中)、锁(MVCC和LBCC),到其中的应用技巧与底层原理,错综复杂,学习成长之路漫漫。

本文先抛开上述,总结一下自己在实践中领悟到的数据库设计的思路,万事开头难,只要表结构设计得当,可以省去后期诸多不必要的SQL优化,事半功倍。

1、数据库的选择:关系型数据库 or 非关系型数据库

主业务数据普遍选择建立在\color{#FF0000}{关系型数据库} 中,方便维护,考虑业务数据量巨大或者是审计日志、操作记录等非主要业务数据,可以使用NoSql\color{#FF0000}{非关系型数据库},减少对主数据库的存储及性能压力。
业务的增长会让数据量的估值不够准确,而后常常会根据业务特性使用\color{#FF0000}{分表 or分库【水平 or 垂直】}的方案的来解决性能瓶颈。

2、恰当的关联关系:基于业务关系的梳理

3、表粒度

可以通过增加type区分的业务组合,减少重复表结构的建立,相对代码也是对表的一种封装;
业务数据隔离或者数据量庞大的情况,即使表结构类似,也应当独立出来;
业务字段过多,可能根据业务划分出基础信息、扩展信息表等;
\color{#0000FF}{版本表 or 历史表} ,通常独立于主业务表,否则会影响主业务表的性能和结构化关系。

4、常用字段的处理:mysql5.7+

数据库知识丰富多彩,耐人寻味,多看几遍58沈剑数据库30条军规、阿里数据库操作规范等,学习理论结合工作实践,提升技术,提升对数据库的理解。

上一篇 下一篇

猜你喜欢

热点阅读