mysql企业规范约束

it2024-10-18  37

库、表字段约束规范(经验之谈)

判断某个字段是不是的属性 is_vip unsigned tinyint(1) 年龄什么之类的,不能为负数的整数,就用无符号整型! age unsigned tinyint(3)

数据库的表名和字段名的规范

都要小写字母开头,单词间也不出现大写字母单词间下划线隔开不能出现单词的复数形式

索引名规范

主键索引名为pk_xxx唯一键索引名为uk_xxx普通索引名为idx_xxx

涉及金额用decimal,避免精度问题

短字符串用char(),长的再用varchar(),非常长的,比如几千个字,就用text文本

一张表的字段一定要有至少三个字段

create table test( id auto_increment unsigned bigint, create_time datetime, update_time datetime );

索引规范(经验之谈)

一定要给唯一索引,不然会产生脏数据、冗余数据

实际开发中,join尽量只连接两个表,且两张表数据类型必须一致

关联查询字段也要有索引

varchar的索引要指明长度

SQL开发约束(经验之谈)

永远记住COUNT(*)会计算null的

判空有专门的ISNULL()函数,而不是用where xxx=null,再不济也是where xxx is null

在高并发或集群项目中,不要使用外键和级联!这很重要!!!!

实际开发中不使用存储过程,因为很难调试,移植性也不好

要做删除和修改前,先查,查了看到没错再更新,这很重要!!!!

少用in操作(子查询那边)

编码格式统一全部UTF-8

其他约束(经验之谈)

使用ORM框架时候,查询语句别用select *,字段要明确表明!

解析器解析SQL的*需要时间,耗费性能返回的ResultMap配置有问题就GG有些数据不用查出来,要啥拿啥

不要滥用@Transactional,会影响数据库的qps

最新回复(0)