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資料。
沒有留言:
張貼留言