MySQL:企业规范约束

本文详细介绍了MySQL的企业级规范,包括库表字段约束,如字段命名、数据类型选择和主键索引设计;索引规范,强调唯一性和查询效率;SQL开发约束,如避免特定操作以提高性能;以及其他约束,如SQL查询优化和事务管理建议。遵循这些规范能提升数据库性能和代码可维护性。

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

一.★库表字段约束规范

1。 数据库中,如果要使用’是‘’否‘,字段名一定要加上 is_ 前缀,数据类型一定要是 unsigned tinyint 类型,长度给1(0&1)

如果是Java_mysql,boolean类型,则不要加is_前缀

2. 如果这个字段不能是负数(r如:年龄),则数据类型一定要是 unsigned

3. 字段名、表名必须是小写字母开头,单词不能是复数,不能有数字,不能是大写,也不要 _+数字。

(因为在windows中mysql是不分大小写的,而在linux中则是区分大小写。)

4. 主键、索引名格式一般是 pk_xxx,uk_xxx,idx_xxx

5. 小数类型,禁止使用float和duble,避免精度丢失。可以使用decimal

6. 如果是字符串类型,长度较短使用char, 如果必须varchar,则长度不要超过5000,超过5000使用text.

7. 一个正规表必须要有三个字段:id,create_time,update_time

id必须是无符号bigint,且有主键,单表的时候必须自增,自增步长一般是1,除非是分布式id

create_time、update_time必须是datatime类型

8. 频繁查询的字段,允许其数据有一定的冗余

2.索引规范

具有唯一特性的字段或字段组,应当设置唯一索引,尽管有一些增删改的速度损耗,但是可以忽略。

join查询不允许过多,且join的数据类型必须一致。

多表关联查询,关联的字段也应当有索引。

3.★SQL开发约束

不要用count(xxx)来替代count(*), * 不仅会查出来显示的字段,还会查出来null字段(空的列)

不要使用 = 号来判断null,要用 isnull(/字段/) 或,/字段/ is null  判断

不要使用外键和级联,尤其是并发的大的项目,会严重影响执行

一切外键的问题,全都在应用层解决,绝不能在sql中。

实际开发中,不允许使用存储过程,因为很难调试(procedure中一条语句出错不执行,但它前面的正确的语句都已经执行了,如果没有引用事件则无法回滚,引用事件则结构太复杂,且很难扩展,且移植性极低。)

数据更新或删除的时候,先执行查询以避免错误。

in,not in操作,能避免就避免。

数据库接收端和发送端的编码格式,都要是utf-8。

4.其他约束

om框架中,查询禁止使用 * ,要使用具体字段。

解析器解析sql语句时,会解析查询内容,如果是 * ,则可能会耗费相当长的时间

Spring中的 @Transactional不要滥用,可能会影响数据库的QPS(每秒查询率),使用@Transactional时要尽量考虑各种回滚。

销毁表(drop)比delete速度要快。

。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值