MySQL开发规范

1.1、表设计

  1. 库名、表名、字段名必须使用小写字母,“_”分割;

1、MySQL有配置参数lower_case_table_names,不可动态更改,linux系统默认为0,即库表名以实际情况存储,大小写敏感。如果是1,以小写存储,大小写不敏感。如果是2,以实际情况存储,但以小写比较;
2、如果大小写混合用,可能存在abc,Abc,ABC等多个表共存,容易导致混乱;
3、字段名显示区分大小写,但实际使用不区分,即不可以建立两个名字一样但大小写不一样的字段;为了统一规范, 库名、表名、字段名使用小写字母。

  1. 库名、表名、字段名必须不超过12个字符;

库名、表名、字段名支持最多64个字符,但为了统一规范、易于辨识以及减少传输量,必须不超过12字符。

  1. 库名、表名、字段名见名知意,建议使用名词而不是动词;

1、用户评论可用表名usercomment或者user_comment;
2、库表是一种客观存在的事物,一种对象,所以建议使用名词。

  1. 无特殊用途,线上使用InnoDB存储引擎;

1、5.5以后的默认引擘,支持事务,行级锁,更好的恢复性,高并发下性能更好,对多核,大内存,ssd等硬件支持更好;
2、具体比较可见附件的官方白皮书。

  1. 存储精确浮点数必须使用DECIMAL替代FLOAT和DOUBLE;

1、mysql中的数值类型(不包括整型)有浮点数:IEEE754float(单精度)、double或real (双精度)和定点数decimal或numeric。单精度浮点数的有效数字二进制是24位,按十进制来说,是8位;双精度浮点数的有效数字二进制是53位,按十进制来说,是16 位。一个实数的有效数字超过8位,用单精度浮点数来表示的话,就会产生误差!同样,如果一个实数的有效数字超过16位,用双精度浮点数来表示,也会产生误差;
2、IEEE754标准的计算机浮点数,在内部是用二进制表示的,但在将一个十进制数转换为二进制浮点数时,也会造成误差,原因是不是所有的数都能转换成有限长度的二进制数;即一个二进制可以准确转换成十进制,但一个带小数的十进制不一定能够准确地用二进制来表示。
示例:

create table t(value float(10,2));
insert into t values(131072.67),(131072.68);
select value from t;
+———–+
| value     |
+———–+
| 131072.67 |
| 131072.69 |
+———–
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值