PostgreSQL 11从入门到精通(视频教学版)
上QQ阅读APP看书,第一时间看更新

5.2 如何选择数据类型

PostgreSQL提供了大量的数据类型,为了优化存储、提高数据库性能,在任何情况下均应使用最精确的类型,即在所有可以表示该列值的类型中该类型使用的存储空间最少。

1. 整数和浮点数

如果不需要小数部分,就使用整数来保存数据;如果需要表示小数,就使用浮点数类型。对于浮点数据列,存入的数值会被该列定义的小数位进行四舍五入。例如,列值范围为1~99999,若使用整数,则INT是最好的类型;若需要存储小数,则使用浮点数类型。

2. 日期与时间类型

PostgreSQL对于不同种类的日期和时间有很多数据类型,比如TIME和DATE。如果只需要记录时间,就使用TIME类型,如果只记录日期,就使用DATE类型。

如果同时需要记录日期和时间,就可以使用TIMESTAMP类型。默认情况下,当插入一条记录但并没有指定TIMESTAMP这个列值时,PostgreSQL会把TIMESTAMP列设为当前的时间,因此当需要插入记录时同时插入当前时间,使用TIMESTAMP是方便的。

3. CHAR与VARCHAR之间的特点与选择

CHAR和VARCHAR的区别是,CHAR是固定长度字符,VARCHAR是可变长度字符。对于插入数据长度不够时,CHAR会自动填充插入数据的尾部空格,VARCHAR不会自动填充尾部空格。

CHAR是固定长度,所以它的处理速度比VARCHAR的速度快,缺点是浪费存储空间。所以对存储不大但在速度上有要求的可以使用CHAR类型,反之可以用VARCHAR类型来实现。