Mysql中金融字段的设计
小明 Lv6

一般同财务相关的金额类数据必须使用 decimal 类型 ,由于 float 和 double 都是非精准的浮点数类型,而 decimal 是精准的浮点数类型。所以一般在设计用户余额,商品价格等金融类字段一般都是使用 decimal 类型,可以精确到分。

但是,在海量互联网业务的设计标准中,并不推荐用 DECIMAL 类型,而是更推荐将 DECIMAL 转化为整型类型。 也就是说,金融类型更推荐使用用分单位存储,而不是用元单位存储。如1元在数据库中用整型类型 100 存储。

下面是 bigint 类型的优点:
decimal 是通过二进制实现的一种编码方式,计算效率不如 bigint
使用 bigint 的话,字段是定长字段,存储高效,而 decimal 根据定义的宽度决定,在数据设计中,定长存储性能更好
使用 bigint 存储分为单位的金额,也可以存储千兆级别的金额,完全够用,它的范围仅受限于可用内存的大小。

关注获取更多资源

image
 评论