網頁

2022/2/18

PostgreSQL json 與 jsonb 資料型態差別

PostgreSQL的jsonjsonb資料型態皆可儲存JSON資料,而兩者差別如下。

json是以JSON文本格式儲存,輸入的JSON字串不用轉換可直接儲存所以儲存速度較快,但以函式處理時必須先經過解析因此處理速度較差。儲存時是完整複製輸入的JSON字串,因此會保留空白、key的順序及重複的欄位,處理時是抓最後一個重複欄位。

jsonb是以JSON的binary儲存,輸入的JSON字串要先轉為binary才儲存n所以儲存速度較慢,而以函式處理時不用跟過解析所以處理速度較快。儲存時不保留空白、key的順序及重複的欄位,僅保留最後一個重複欄位。此外jsonb支援indexing,查詢效率較好。

json jsonb
格式 text binary
空白 保留 不保留
key順序 保留 不保留
key/pair重複 保留 不保留
輸入效率
處理效率
查詢效率
index

若無特殊需求一般使用jsonb來儲存JSON資料。


沒有留言:

張貼留言