数据库 30 条军规

我记得有一次我在一家初创公司做数据库优化。
当时,该公司正忙于推出新功能。
服务器上的数据库就像是被一群蚂蚁啃着的奶酪,越啃越小。
当我接手时,数据库一片混乱,就像刚刚经历了一场战争一样。
表名拼音乱码,字段名不规则,索引像无头苍蝇一样乱飞。
我花了两天的时间,按照这些军规一步一步地修改。
结果服务器负载减轻了,响应速度提高了,老板高兴得合不拢嘴。
但我总觉得这就像救火一样。
火已被扑灭,但尚未找到火源。
等等,还有一件事,我突然想到,如果当时有一个更全面的监控工具,是不是可以提前发现问题,避免这些乱七八糟的情况呢?

数据库表名的命名规范

说到数据库表命名约定,您必须小心这一点。
我们首先要说的是人物的构成。
表名必须由2 6 个英文字母和下划线“_”组成。
我们不使用数字。
每个单词都使用一种字体,让它们看起来很新鲜。
例如,“order_detail”,而不是“orderdetail”或“orderdetail_”。

谈谈提名的形式。
我们通常使用“模块名称详细描述”的格式,例如“sales_order_detail”,这样一看就知道这张表是关于销售订单的详细信息。
此外,所有字母都必须是小写字母,因为自动字母太难而且非常缺乏。

选择词汇时,选择名词或单词作为短语的宾语,例如“order”而不是“sasorder”。
我们还尽量避免缩写并使每个单词完整,以便其他人知道您在说什么。

长度限制通常不超过三个拉丁单词。
如果再长,别人就记不住了。
我们也尽量不使用汉语拼音。
毕竟数据库环境都是英文的,用拼音就有点格格不入了。
特殊的报表表,和很多报表一样,我们可以使用两个相关表的前缀,比如“customer_order”,这样我们就可以直观地识别客户和订单之间的关系。

对于单数和复数形式,我们通常使用单数,例如“Employees”,而不是复数“Employees”以避免歧义。

保留关键字。
数据库中保留了一些关键字,例如“名称”和“时间”。
我们必须避开他们,避免与他们发生冲突。

描述信息,最好在创建表的SQL语句中添加较长的描述,这样别人一看就知道表里有什么。
前缀约定,例如日志文件通常以“Sys_”开头,数据字典文件以“SD_”开头,系统文件字典使用“DT_”作为前缀,所以大家都用它。

最后,对于常见的表名称,我们建议采用适当的命名约定,以便团队之间的协作能够顺利进行。
对此要小心并有规则。

数据库表名的命名规范

表名必须规范,字母数字下划线,小写,模块描述,对象动词名称,无缩写,三个字以内,无拼音,单数,无关键字,详细描述,Sys_log,SD_dictionary,DT_system,标准化命名,团队协作。