PostgreSQL的json
與jsonb
資料型態皆可儲存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資料。
沒有留言:
張貼留言