环境

条目 说明
机型 MacBook Pro (13-inch, 2017, Two Thunderbolt 3 ports)
OS macOS Catalina 10.15.1
CPU 2.3 GHz 双核Intel Core i5
内存 8 GB 2133 MHz LPDDR3
磁盘 Macintosh HD
Postgres 版本:9.6.9
docker image: postgres:9.6.9-alpine
container 内存限制:128M
其他为默认配置

数据库设计

类型 备注
size int
weight int
json json {“size”:1, “weight”: 1}
jsonb jsonb {“size”:1, “weight”: 1}
  • 行数:10万行数据
  • json query 示例:select sum((jsonb->>’size’)::int) as s, sum((jsonb->>’weight’)::int)as w, sum((jsonb->>’not’)::int) as n from json_bench;

评测内容

聚合

聚合(sum)列 耗时(ms)
size 44
json->size 147
jsonb->size 67
size, weight 43
json->size, json->weight 237
jsonb->size, jsonb->weight 144

排序

查询列 排序列 耗时(ms)
size, weight size 54
json->size, json->weight json->size 242
jsonb->size, jsonb->weight jsonb->size 138

参考

功能:https://www.postgresql.org/docs/9.6/datatype-json.html

操作:https://www.postgresql.org/docs/9.6/functions-json.html