0x01 SqlServer 生产环境的做法

在SqlServer中,通常用 nvarchar 来存储字符串类型的数据,我们生产环境大量使用该类型,数据长度一般为 nvarchar(255) 、nvarchar(2000)、nvarchar(4000)、nvarchar(max)。

其中,nvarchar(1) 可以存储:一个汉字或者一个字母。

0x02 达梦数据库中需要怎么存

达梦数据库中,在数据库安装时需要关注字符集,重点关注两种类型:GBK 和 UTF8,正确的选择关系到你后面数据是否能存下的问题。敲重点。

就数据类型而已,达梦这边主要用 varchar 和 text 类存储字符串,其中 varchar 最大能存 8188个字符,text 则能存2G的数据。

GBK 中 varchar 类型,一个汉字要占用2个字符,字母和数字占用1个字符。
UTF8 中 varchar 类型,一个汉字要占用3个字符,字母和数字占用1个字符。

这意味着,SqlServer 中原来的 nvarchar(4000) 类型转到达梦。

在 GBK 中,你要用 varchar(8000) 才能存下。
而 UTF8 中,你则需要 text 才能存下,要注意 text 虽然能存下,他是clob类型的,程序中要对应处理。

当然,还有一个要注意的问题,你在达梦需要“开启超长记录”,否则一个 nvarchar(4000) 就把一行记录的存储空间用完了。像我们业务中 SqlServer 大量的单表几百个字段根本没法玩。

0x03 小结

  1. 达梦中如无必要,请选择GBK的编码,同样的varchar能存更多中文字符。
  2. 字段多了请开启超长记录,否则一个字段用完了一行的空间。
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐