MySQL数据库规范

本文介绍了MySQL数据库的一些关键设计规范,如表名和字段名的命名规则,避免使用关键字,选择decimal而非float/double,限制join查询的表数量并保持字段类型一致,正确使用count()函数,以及避免外键和级联操作。此外,还讨论了在ORM映射时避免使用HashMap和如何通过字段冗余提升查询性能。
摘要由CSDN通过智能技术生成

前言

来聊一聊MySQL数据库常见的一些建议设计规范,简单挑出几处进行简单分析和回顾复习,如果有不正确或者不足的地方,还请指正。

规范

  1. 表名、字段名命名必须使用小写字母或数字,并且使用下划线进行分隔,禁止以数字开头。 MySQL在Windows系统下不区分大小写,但是在Linux系统下默认是区分大小写。

  2. 表名、字段名命名禁止使用MySQL的关键字。 该条规范和各类语言禁止定义关键字作为变量名称一样,MySQL中的关键字有很多,例如:desc、and、asc等。

  3. 小数类型使用decimal,禁止使用float和double float和double会存在精度丢失的问题,这个我在前面的文章中已经详细解释过了,具体的可以看之前的文章,如果存储超过decimal范围,可以采取将整数和小数分开存储的方案,这个之前文章也讲过。

  4. join查询时禁止超过三张表,并且join的字段数据类型需要保持一致,关联查询时关联的字段需要添加索引。 如果关联的字段数据类型不一致,可能会导致索引失效。

  5. 推荐使用count(*)统计行数,不推荐使用count(列名)或者count(常量) count(列名)会过滤掉列为NULL的行。

  6. 判断列是不是NULL,使用ISNULL()进行判断 NULL和任何值进行直接比较,结果都是NULL。

  7. 禁止使用外键和级联,外键的解决放在应用层进行解决。 外键和级联适合低并发,对于高并发、分布式集群不适合,级联更新是强阻塞,存在数据库更新风暴的风险,外键影响数据库的插入速度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值