阿里Java开发手册学习 3 MYSQL规约

本文详细介绍了数据库设计中的建表、索引及SQL编写规范,包括字段命名、表名命名原则,以及如何优化SQL查询效率等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

建表规约 

1.表达是与否概念的字段,必须使用is_XXX的方式命名,数据类型是 unsigned tinyint (1表示是,0表示否)。 

2.表名不使用复数名词。

3.禁用保留字。

4.小数类型为decimal,禁止使用float和double。

5.表的命名最好是加上“业务名词_表的作用” 。

6.修改字段时要及时更新字段注释。 

7.字段允许适当冗余,以提高性能。 

8.单表行数超过500万行或者单表超过2G时才考虑分库分表。

9.合适的字符存储长度,不但节约数据库表空间、节约索引存储,更重要的是提升检索速度。

 索引规约

1.业务上具有唯一特性的字段,即使是组合字段,也必须建成唯一索引。 

2.超过3个表禁止join;多表关联查询时,保证被关联的字段需要有索引。

3.页面搜索严禁左模糊和全模糊。

4.利用延迟关联或者子查询优化超多分页场景。即先查出索引主键,再根据主键关联找出需要的信息。

5.建组合索引的时候,区分度最高的在最左边。

 

SQL规约

1.不要使用count(列名)或count(常量)来代替count(*),count(*)会统计值为null的行,而count(列名)不会统计此列为NULL的值。

2.count(district col) 计算该列除NULL之外的不重复数量。 

3.当列值全是null时,count(col)的返回结果是0,sum(col)的返回结果是NULL。注意NPE问题。

4.必须使用ISNULL()来判断是否为NULL值,NULL与任何值得比较都为NULL。 

5.不得使用外键与级联,一切外键概念必须在应用层解决。

6.禁止使用存储过程,存储过程难以调试和扩展,更没有移植性。

 

ORM规约 

1.禁止使用*作为查询的字段列表。

2.POJO的boolean属性不准使用is,而数据库必须使用is_,在resultMap中进行字段与属性之间的映射。

3.不要写一个大而全的数据接口,。

 

转载于:https://www.cnblogs.com/baokang/p/6349047.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值