你能说说你理解的数据库规范吗?

上一篇简单的说了下,本身公司的接口规范和上线规范,此次说下关于数据库方面的规范,但愿可以帮助到你们。sql

一、首先是工具,咱们用的是 Mysql数据库,工具是Workbench,这个工具是专门为Mysql设计的数据库建模工具,你能够用它进行设计和建立新的数据库图示,在windows上面咱们大多用的是PowerDesiger,在mac上用workbench目前来看仍是挺好用的,不管是创建数据库文档,ER图,数据库的迁移都仍是很贴心的。数据库

二、数据库字符集UTF-8,统一字符集,也就避免了麻烦的乱码转码问题,UTF-8几乎是好多工具的通用码,特殊的列使用扩展字符集。windows

三、每一个文件都有一个script文件,这个script文件里面有的应该是这个项目的数据库设计ER图,还有该项目数据库初始的sql语句,任何有关于该项目的数据库更改,都应该首先更改该script文件,而且标注日期,确保该script文件是正确的据库设计,由于咱们在上线的时候要给运维上传的sql语句就是从这个ER图导出来的。并发

四、相关联的业务数据表的名字要使用相同的前缀,确保一个业务的多个表在大量表中处于相邻位置。这点以为仍是很贴心的。运维

五、数据常常变化的放到一张表;数据不变化的放到一张表;数据不常常变化的一张表。数据库设计

六、存储引擎必须使用InnoDB,InnoDB支持事务、行级锁、并发性能更好。高并发

七、不可以使用存储过程、视图、触发器,高并发大数据的互联网业务,若是并发量太大,使用这些会把数据库拖垮,把业务逻辑放到服务层具有更好的扩展性,需求有所变化的时候也更好修改,而不用去修改繁琐的sql语句,而且可以轻易简单的 实现增长机器就增长性能,数据库的专长在于存储和索引。专业的事情就让专业的人来作。工具

八、禁止使用Blob和Clob类型的字段,可使用单独的库、单独的表来存储大文本的数据,这样作的话,当运维想要处理、备份数据的时候,这样的表能够针对性的优化,不用在乎一些别的因素。性能

九、表名使用下划线分隔,id主键统一命名为id BIGINT(20),数据写入时能够提升插入性能。大数据

十、每一个表中必须包含字段createTime字段,建立时间,确保将来默认排序。

十一、外键禁止关联。外键会致使表和表之间的耦合,update和delete都会涉及到相关联的表,十分影响sql性能,还有可能会形成死锁。

十二、保存时间相关的数据,要使用时间戳的格式,由于在将来可能会涉及到时区的问题,而时间戳能够彻底避免该问题;保存货币相关的数据,要保存最小货币的数量,避免有小数点,由于可能会引发数据精度问题,致使数据不许确。

1三、索引命名定义规则,其中必定要包括表名+列名,来确保该索引在整个数据库中是惟一的。

1四、创建组合索引的同时要把区分度较高的放在前面,这样可以更加有效的过滤数据。

以上都是本身开发过程当中遵照的,而且感受很高效的数据库规范,简单整理下,沉淀下来,但愿能帮助到这个公众号的读者。

这样的分享会一直持续,你的关注,转发和好看是对我最大的支持,感谢。

关注公众号,最新文章会第一时间出如今那里哦!

相关文章
相关标签/搜索