TDSQL·入门篇·编程与使用规范

weixin_44020914 2022-03-17 11:11:09

1 引言

1.1 文档目的

本文档旨在明确 MariaDB 数据库技术与应用的规划与设计、安装与部署、运行管理与维护等全生命周期各阶段的主要技术标准和指导原则,便于 MariaDB 数据库应用项目的统一建设和管理,增加 MariaDB 数据库技术应用的规范性、性能保障和可维护性。

1.2 预期读者

使用 MariaDB 的项目相关数据库设计、开发管理和运行维护人员。

2 设计规范

2.1 数据库设计原则

  • MariaDB 面向的是 OLTP 的应用场景,并不适用于大多数复杂的 OLAP。
  • 反范式设计:
    不必强制满足第三范式,尽量少使用外键。
    • 外键用来保护参照完整性,可在业务端实现。
    • 适度的冗余设计,减少多表join查询,更适应 MPP 架构的横向扩展能力。
    • 直接基于 I/O 和查询进行优化。
  • 充分考虑业务逻辑和数据分离,数据库只作为一个保证 ACID 特性的关系数据的持久化存储系统,尽量避免使用自定义函数、存储过程、触发器和视图。
  • 充分考虑数据库整体安全设计,数据库管理和使用人员权限分离。
  • 充分考虑具体数据对象的访问频度及性能需求,结合主机、存储等需求,做好数据库性能设计。
  • 充分考虑数据增长模型,决策是否采用“分布式(水平拆分)”模式。
  • 充分考虑业务数据安全等级,设计合适的备份和恢复策略。

2.2 数据库模型设计规范

2.2.1 基础规范

  • 只使用 InnoDB 存储引擎,避免使用 MyISAM 引擎,二者对比,InnoDB 具有如下特性:
    • 完整的 ACID 支持。
    • 崩溃自检恢复。
    • 行级锁,高并发的保证。
    • 更能发挥多核 CPU 的性能。
    • 自带缓存池,更好的利用内存。
  • 所有表使用统一的字符集,建议使用 UTF8 或 UTF8MB4 字符集。
  • 不在数据库中存储图片、二进制文件等大数据。
  • 提前规划好单表规模、行数和大小。
  • 控制单行字段总长度,合理设置 innodb_page_size,尽量采用 COMPACT 行格式,避免行溢出。

2.2.2 数据库对象命名规范

数据库对象命名规范的适用范围为使用 MariaDB 的数据库设计、管理、开发人员,对于 MariaDB 产品自带的系统库表等对象不在本规范约束范围内。

数据库对象命名时整体遵循如下规范:

  • 对象命名要使用富有意义英文词汇,除约定俗成外,避免使用缩写。
  • 在索引约束等对象命名时会同时包含表名、字段名等多个名字,此时可以使用缩写,缩写规则和字符数要统一。
  • 只使用小写字母、数字和下划线的组合。
  • 名字长度不要超过32个字符。
  • 不要使用 SQL 关键字。
  • 对象名字至少包括:对象类型、父对象名、对象名。

·····

更多详见:https://cloud.tencent.com/document/product/237/4914

...全文
848 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

87

社区成员

发帖
与我相关
我的任务
社区描述
TDSQL开发者
其他 企业社区
社区管理员
  • csdnsqst0015
  • kikokingzz
  • karina17
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

社区初立,为了鼓励小友们在社区中积极互动,现在有一个活动如下:

试试用AI创作助手写篇文章吧