數據類型
更新時間 2025-06-17 10:55:33
最近更新時間: 2025-06-17 10:55:33
分享文章
本頁介紹DRDS的數據類型,包括數字類型、字符類型、二進制數據類型、日期類型和布爾類型。
開發限制
DRDS對于數據類型有如下開發限制:
不支持用戶自定義數據類型。
integer類型不使用unsigned無符號屬性。
自增用8字節bigint,不要使用4字節integer。
日期類型用DATETIME 類型,需要精確到毫秒用DATETIME(6),不要使用integer、timestamp。
類型JSON可用于存儲非結構化數據,典型場景為用戶標簽,不要將JSON用于頻繁更新的字段場景。
類別設計,用ENUM+CHECK 約束,不要使用integer類型的設計。
數字類型
| 名字 | 存儲尺寸 | 描述 | 范圍 |
|---|---|---|---|
| smallint | 2字節 | 小范圍整數 | 小范圍整數-32768 到+32767 |
| integer | 4字節 | 整數的典型選擇 | -2147483648 到 +2147483647 |
| bigint | 8字節 | 大范圍整數 | 大范圍整數-9223372036854775808 到+9223372036854775807 |
| decimal | 可變 | 用戶指定精度,精確 | 最高小數點前131072位,以及小數點后16383位 |
| numeric | 可變 | 用戶指定精度,精確 | 最高小數點前131072位,以及小數點后16383位 |
| real | 4字節 | 可變精度,不精確 | 6位十進制精度 |
| double precision | 8字節 | 可變精度,不精確 | 15位十進制精度 |
| smallserial | 2字節 | 自動增加的小整數 | 1到32767 |
| serial | 4字節 | 自動增加的整數 | 1到2147483647 |
| bigserial | 8字節 | 自動增長的大整數 | 1到9223372036854775807 |
字符類型
| 名字 | 描述 |
|---|---|
| character varying(n),varchar(n) | 有限制的變長 |
| character(n),char(n) | 定長,空格填充 |
| text | 1GB |
二進制數據類型
| 名字 | 存儲尺寸 | 描述 |
|---|---|---|
| bytea | 1或4字節外加真正的二進制串 | 變長二進制串 |
日期類型
| 名字 | 存儲尺寸 | 描述 | 最小值 | 最大值 | 解析度 |
|---|---|---|---|---|---|
| timestamp [ (p) ] [ without time zone ] | 8字節 | 包括日期和時間(無時區) | 4713 BC | 294276 AD | 1微秒/14位 |
| timestamp [ (p) ] [ with time zone ] | 8字節 | 包括日期和時間(有時區) | 4713 BC | 294276 AD | 1微秒/14位 |
| date | 4字節 | 日期(沒有一天中的時間) | 4713 BC | 5874897 AD | 1日 |
| time [ (p) ] [ without time zone ] | 8字節 | 一天中的時間(無時區) | 0:00:00 | 24:00:00 | 1微秒/14位 |
| time [ (p) ] [ with time zone ] | 12字節 | 僅是一天中的時間,帶有時區 | 00:00:00+1459 | 24:00:00-1459 | 1微秒/14位 |
| interval [fields ] [ (p) ] | 16字節 | 時間間隔 | -178000000年 | 178000000年 | 1微秒/14位 |
布爾類型
| 名字 | 存儲尺寸 | 描述 |
|---|---|---|
| boolean | 1字節 | 狀態為真或假 |
JSON類型
| 名字 | 存儲尺寸 | 描述 | 范圍 |
|---|---|---|---|
| JSON | 動態(最小開銷約 2 字節,通常大于文本) | 用于存儲結構化 JSON 數據,支持嵌套對象、數組、鍵值對等復雜結構,底層為二進制格式 | 任意合法JSON文本,大小最大 1GB(受max_allowed_packet限制) |