暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

达梦数据库中LENGTH_IN_CHAR 和 CHARSET 组合使用效果

郑小凤 2024-06-21
1910

LENGTH_IN_CHAR 和 CHARSET 组合使用效果

一. 定义 

二. 环境准备 

三. 实践对比 

3.1. UNICODE_FLAG=1、LENGTH_IN_CHAR=0 

3.2. UNICODE_FLAG=1、LENGTH_IN_CHAR=1 

3.3. UNICODE_FLAG=0、LENGTH_IN_CHAR=1 

3.4. UNICODE_FLAG=0、LENGTH_IN_CHAR=0 

四. 个人感受总结 

定义

LENGTH_IN_CHAR:VARCHAR 类型对象的长度是否以字符为单位。取值:1、Y 表示是,0、N 表示否。默认值为 0。可选参数。1 或 Y:是,所有 VARCHAR 类型对象的长度以字符为单位。这种情况下,定义长度并非真正按照字符长度调整,而是将存储长度值按照理论字符长度进行放大。所以会出现实际可插入字符数超过定义长度的情况,这种情况也是允许的。同时,存储的字节长度 8188 上限仍然不变,也就是说,即使定义列长度为 8188 字符,其实际能插入的字符串占用总字节长度仍然不能超过 8188。

CHARSET/UNICODE_FLAG:字符集选项。取值:0 代表 GB18030,1 代表 UTF-8,2 代表韩文字符集 EUC-KR。默认为 0。

LENGTH_IN_CHAR 与 CHARSET/UNICODE_FLAG 参数配合时,有多种搭配结果。

配置

字段长度

英文存储个数

中文存储个数

实际字节数

备注

GB18030, LENGTH_IN_CHAR=0

VARCHAR(10)

10

5

10

中文占 2 字节

GB18030, LENGTH_IN_CHAR=1

VARCHAR(10)

20

10

20

中文占 2 字节,以字符为单位,自动扩充为双倍字节数

UTF-8, LENGTH_IN_CHAR=0

VARCHAR(10)

10

3.3

10

中文占 3 字节

UTF-8, LENGTH_IN_CHAR=1

VARCHAR(10)

40

13.3

40

中文占 3 字节,以字符为单位,自动扩充为 4 倍字节数

环境准备

IP

实例名

端口

参数

192.168.23.10

T1

5336

UNICODE_FLAG=1、LENGTH_IN_CHAR=0

T2

5337

UNICODE_FLAG=1、LENGTH_IN_CHAR=1

T3

5338

UNICODE_FLAG=0、LENGTH_IN_CHAR=1

T4

5339

UNICODE_FLAG=0、LENGTH_IN_CHAR=0

实践对比

UNICODE_FLAG=1、LENGTH_IN_CHAR=0

当参数 UNICODE_FLAG=1、LENGTH_IN_CHAR=0 时。一个汉字占用三个字节,一个英文占用一个字节。

UNICODE_FLAG=1、LENGTH_IN_CHAR=1

当参数 UNICODE_FLAG=1、LENGTH_IN_CHAR=1 时,一个汉字占三个字节,一个英文字母占一个字节,一个字符四个字节(即一个 varchar 单位占四个字节),可以存四个英文字母。

UNICODE_FLAG=0、LENGTH_IN_CHAR=1

当参数 UNICODE_FLAG=0、LENGTH_IN_CHAR=1 时,一个汉字占两个字节一个字符,一个英文字母占一个字节,一个字符可以存一个汉字或者两个英文字母。

UNICODE_FLAG=0、LENGTH_IN_CHAR=0

当参数 UNICODE_FLAG=0、LENGTH_IN_CHAR=0 时,一个汉字占两个字节,一个英文字符占一个字节。

个人感受总结

LENGTH_IN_CHAR 与 CHARSET/UNICODE_FLAG这2个参数属于数据库初始化的时候需要确定好参数,后续建好库之后无法更改。在实际工作中,如果是Oracle迁移。最好LENGTH_IN_CHAR=0,如果是mysql,sqlserver迁移,最好LENGTH_IN_CHAR=1。

如果想了解更多达梦数据库的信息,推荐达梦官方的在线服务平台   https://eco.dameng.com/

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论