1. 程式人生 > >Postgresql 9.4 文件閱讀筆記

Postgresql 9.4 文件閱讀筆記

numeric - 可以儲存非常大資料,並且可儲存高精度資料。numeric(precision, scale)例如:23.5141 precision=6, scale=4 可儲存NaN值,代表not-a-number。在Postgresql中NaN和NaN數值是相等的,並且大於其他任何值。

serial - 用於自增欄位。相當於: CREATE SEQUENCE tablename_colname_seq; CREATE TABLE tablename ( colname integer NOT NULL DEFAULT nextval(’tablename_colname_seq’) ); ALTER SEQUENCE tablename_colname_seq OWNED BY tablename.colname;

money - 用於儲存跟錢相關的資料。可支援如:$1,000.00 格式的資料。跟本地位置資訊相關。取決於lc_monetary引數的配置。例如:

mydb=# select ‘12.34’ ::money; money
¥12.34

character varying(n) - 有限可變長度字串

character(n) - 有限定長字串。空格補位。

text - 任意長度字串。 短字串(小於126byte)需要額外的1位元組儲存空間,長的字串需要4位元組的額外儲存。最長的字串大約1GB。 三種類型在效率上無明顯差別,只在儲存空間上不同。在Postgresql中charater反而會慢,因為需要額外的blank paded操作。

binary - 可變長二進位制串。與character String有兩點主要區別:1、binary可儲存0值八位位元組以及任何不可列印的字元,而charater不允許任何在資料庫編碼下無法解析的字元編碼。2、binary直接操作位元組,而strings依賴與本地化設定。 支援兩種輸入輸出格式: escape和hex。預設是hex。

date - 日期型別,推薦的輸入格式1999-01-08 ,支援輸入為now,當前事務時間。

interval - 儲存間隔。例如: Style Specification Year-Month Interval Day-Time Interval Mixed Interval sql_standard 1-2 3 4:05:06 -1-2 +3 -4:05:06

tsvector - 排序去重列表。例如: SELECT ’a fat cat sat on a mat and ate a fat rat’::tsvector;
輸出:’a’ ’and’ ’ate’ ’cat’ ’fat’ ’mat’ ’on’ ’rat’ ’sat’

json - 儲存json資料型別,分兩種形式,json和jsonb,支援的輸入格式幾乎相同。

json - 完全拷貝輸入資料儲存,因此在處理時需要重新解析,耗時。並且,沒有對空格,重複key等的處理,因為完全拷貝。 jsonb - 解析後儲存,因此在儲存時有額外耗時,但是後續處理時效率高,並且支援索引。 因此,通常使用jsonb。 jsonb 的索引 - GIN(Generalized Inverted Index)索引。可針對列整體建立索引,也可以針對jsonb欄位中的某個子屬性加索引。 例如: CREATE INDEX idxgintags ON api USING gin ((jdoc -> ’tags’));