美文网首页互联网技术
MySQL数据库设计规范

MySQL数据库设计规范

作者: 华华lucky | 来源:发表于2017-08-18 17:47 被阅读199次

这篇文章是基于几年工作经验以及网络上一些资料写就而成,主要是总结一下关于数据库和表设计方面的一些规范和原则,不涉及理论纯实践经验,仅供参考。一般而言,规范总是会限制一些功能,以牺牲功能的灵活性和丰富性来换取数据以及基于数据库的系统的安全和可维护性。因此,关于建立规范,需要以理解其作用和用意为前提,而不要受其拘泥而被捆绑了手脚。闲话少叙,正文如下:

基础规范

  1. 谨慎选择存储引擎
    一般有两种选择InnoDB和MyISAM,但选择哪一个需要慎重
  • InnoDB:支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高
  • MyISAM:表强调的是性能,其执行数度比 InnoDB 类型更快,支持全文索引,支持GIS数据:Point,Line,Polygon,Surface等;MyISAM内置了一个计数器,count(*)时它直接从计数器中读,而InnoDB必须扫描全表。
  1. 限定字符编码utf-8 或utf8-mb4
  • utf-8:万国码,无需转码,无乱码风险
  • utf8-mb4:utf8mb4是utf8的超集,emoji表情以及部分不常见汉字在utf8下会表现为乱码
  1. 表和字段添加注释
  2. 尽可能不使用存储过程、视图、触发器等
    一般的企业应用或互联网应用中,不应该在数据库中写入领域业务逻辑,这样一来不便于代码维护,而来也不利于系统的横向扩展
  3. 主键策略
    一般情况下,强烈推荐表一定要包含主键,主键要选择较短的数据类型, Innodb引擎普通索引都会保存主键的值,较短的数据类型可以有效的减少索引的磁盘空间,提高索引的缓存效率
  • 自增 数据行写入可以提高插入性能,可以避免page分裂,减少表碎片提升空间和内存的使用
  • 单点
  • 序列
  • 随机不重复字符串
  1. 一般不使用外键
    外键会导致表与表之间耦合,update与delete操作都会涉及相关联的表,十分影响sql 的性能,甚至会造成死锁。高并发情况下容易造成数据库性能,大数据高并发业务场景数据库使用以性能优先。如果有外键完整性约束,需要应用程序控制

命名规范

  1. 库名称
  • 生产环境:xxx
  • 备份库:xxx_bak
  • 开发环境:xxx_dev
  • 测试环境:xxx_test
  1. 表名称和字段名
  • 小写,下划线分割
  • 不超过32个字符
  • 必须见名知意
  • 禁止拼音英文混用
  1. 索引
  • 非唯一索引名idx_xxx
  • 唯一索引名uniq_xxx

业务规范

  1. 手机号用varchar(20)
    手机号可能涉及到区号或者国家代号,可能出现+-86等字符,因此不可以varchar(11)
  2. 金额用decimal(20, 4)
  3. 时间统一用datetime,如有必要再用timestamp

相关文章

  • Mysql 规范

    Mysql 规范 数据库命名规范总结 数据库基本设计规范 索引设计规范 数据库字段设计规范 数据库SQL开发规范 ...

  • 数据库设计规范

    【MySQL】MySQL数据库设计规范 1. 规范背景与⽬的 MySQL数据库与 Oracle、 SQL Serv...

  • mysql 设计规范

    MySQL数据库设计规范目录规范背景与目的设计规范2.1 数据库设计2.1.1 库名2.1.2 表结构2.1.3 ...

  • MySQL之数据类型的选择

    引用 分享一份大佬的MySQL数据库设计规范,值得收藏 MySQL 高性能表设计规范 选择原则 更小的通常更好更小...

  • MySQL 数据库设计规范(存档)

    MySQL 数据库设计规范 目录 1. 规范背景与目的 2. 设计规范2.1 数据库设计2.1.1 通用命名约定2...

  • 数据库规范

    Tips:高性能可扩展mysql视频学习记录(一)1.数据库的命名规范 2.数据库基础设计规范 3.索引设计规范(...

  • mysql基础

    mysql添加外键的4种方式 MySQL基础考点1 MySQL基础考点2 MySQL数据库六大设计规范总结1 My...

  • MySQL数据库设计规范

    MySQL数据库设计规范 转载原文:https://github.com/jly8866/archer/blob/...

  • mysql数据库规范

    一.建表规范 MYSQL数据库设计规范与原则 互联网MySQL开发规范 1.基础规范 使用 INNODB 存储引擎...

  • 阿里数据库开发规范:谁还敢说你的数据库设计的“烂”

    数据库设计几个规范: 数据库命名规范、数据库基本设计规范、数据库索引设计规范、数据库字段设计规范、数据库SQL开发...

网友评论

    本文标题:MySQL数据库设计规范

    本文链接:https://www.haomeiwen.com/subject/ezrarxtx.html