云服务器内容精选
-
字段设计规范 字段设计应使用推荐类型。 字段设计需使用推荐字段,如果需要使用禁用、不推荐的字段类型,建议联系技术支持进行评估。 这些数据类型不推荐或禁止的原因是业务使用场景较少,未大规模商用。 对于业务上有迫切字段类型要求的,联系技术支持,提交需求。 表1 数据库数据类型最佳实践 数据类型 说明 是否推荐 UUID 不同集群可能产生相同UUID 禁止,建议业务直接采用中间件平台提供的分布式ID 序列整型 即自增列,包括SMALLSERIAL,SERIAL,BIGSERIAL 禁止 整数类型 TINYINT, SMALLINT, INTEGER, BIGINT 推荐 任意精度类型 NUMERIC/DEMICAL 推荐 浮点类型 REAL/FLOAT4,DOUBLE PRECISION/FLOAT8,FLOAT 推荐 布尔类型 BOOLEAN 推荐 定长字符 CHAR(n) 推荐 变长字符 VARCHAR(n),NVARCHAR2(n) VARCHAR/TEXT 推荐 时间类型 DATE, TIME, TIMESTAMP, SMALLDATETIME, INTERVAL, REALTIME 推荐 TIMETZ,TIMESTAMPTZ 不推荐 二进制类型 BYTEA(变长二进制类型) 推荐 CLOB(字符大对象),BLOB(二进制大对象),RAW(变长十六进制) 禁止 位串类型 BIT(n), VARBIT(n) 推荐 特殊字符类型 NAME,"CHAR",通常供数据库系统内部使用 禁止 JSON类型 JSON类型目前不支持操作符 禁止 自定义类型 可用于定义枚举EMU等类型 禁止 HLL数据类型 建议直接使用HLL相关函数,减少性能影响 禁止 货币类型 MONEY 存储带有固定小数精度的货币金额 禁止 几何类型 POINT, LSEG, BOX, PATH, POLYGON, CIRCLE 禁止 网络地址类型 存储IPV4 IPV6 MAC地址数据类型 禁止 文本搜索类型 用于支持全文检索 禁止 合理选用字符串数据类型。优先使用变长字符类VARCHAR。只有该字段输入确定为固定字符则使用定长字符类型,或需要自动补充空格,才使用CHAR(n)。 典型的定长字段类型,例如“sex”字段,仅允许输入“f”或“m”一个字节长度的字符。这类字段建议使用定长数据类型(如CHAR(n))。 如果不存在此特点,或者后续可能扩展需要输入更长的字符,请优先使用变长字符类型(如VARCHAR, TEXT),且不建议指定变长类型的长度。 原因如下: 定长字段会对不够长度的输入数据补充空格,然后存入数据库中,产生不必要的存储空间浪费。 如果定义为定长字符类型,后续扩展长度,需要对全表进行扫描重写,性能开销大,影响在线业务。 对于指定固定长度的变长字段,每次插入时会检查是否长度越界,带来性能开销。 字符类型字段不应存储数字类型的数据。 如果对存储在字符类型字段中的数据进行数值计算,或者与数值进行比较操作(如置于过滤条件中),会带来不必要的数据类型转换的开销,同时该字段上的索引可能失效,影响查询性能。 字符类型字段不应存储时间或日期类数据。 如果对存储在字符类型字段中的数据与日期类数据进行计算或比较操作(如置于过滤条件中),会带来不必要的数据类型转换的开销,同时该字段上的索引可能失效,影响查询性能。 对于明确不存在NULL值的字段加上NOT NULL约束。 对于NOT NULL字段,优化器在某些场景下会进行特殊优化,可较大提升查询性能。 相关联字段的数据类型应保持一致。 在进行关联操作时,如果字段类型不一致,会带来数据类型转换开销。 大字段(例如varchar(1000)、varchar(4000))不建议超过8个。 字段定义时建议同时创建COMMENT注释信息,以便于未来维护。 不同类型字段说明、取值范围及使用方法请参考数据类型章节。 用于WHERE条件过滤和关联的字段都应设置NOT NULL约束。 对于NOT NULL字段,优化器在某些场景下会进行特殊优化,可较大提升查询性能。 不建议对表预留字段。大部分场景下可支持快速新增、删除表字段,或者修改字段的DEFAULT值。 新增列必须符合以下要求,否则会带来全表更新开销,影响在线业务。 数据类型为以下类型中的一种:BOOL, BYTEA, SMALLINT, BIGINT, SMALLINT, INTEGER, NUMERIC, FLOAT, DOUBLE PRECISION, CHAR, VARCHAR, TEXT, TIMESTAMPTZ, TIMESTAMP, DATE, TIME, TIMETZ, INTERVAL; 新增列的DEFAULT值长度不超过128个字节; 新增列DEFAULT值不包含volatile函数; 新增列设置有DEFAULT值,且DEFAULT值不为NULL。 如果不确定是否满足条件,请联系数据库技术人员进行评估。 尽量使用高效的数值类数据类型。在满足业务精度的情况下,选择的优先级从高到低依次为整数、浮点数、NUMERIC。 合理设置数值字段的数据类型,根据取值范围选择合适的数值类型,尽量少用NUMERIC/DECIMAL类型。 NUMERIC和DECIMAL等价,NUMERIC(或DECIMAL)数据类型操作对CPU消耗较高。 表2 数值类数据类型存储空间及取值范围 类型 存储空间/Byte 最小值 最大值 TINYINT 1 0 255 SMALLINT 2 -32768 32767 INTEGER 4 -2,147,483,648 2,147,483,647 BIGINT 8 -9,223,372,036,854,775,808 9,223,372,036,854,775,807 REAL/FLOAT4 4 6位十进制数字精度 DOUBLE PRECISION/FLOAT8 8 15位十进制数字精度 父主题: 数据库设计规范
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格