【发布时间】:2020-03-26 00:15:22
【问题描述】:
我想使用 SQLAlchemy(使用 Postgres)将整数列表存储在 Column 中。
我是使用 ARRAY 还是 JSON 更好?我的猜测是 ARRAY 在这种情况下会有更好的性能,但我没有看到任何在线确认。
附加问题:如果我希望整数是唯一的怎么办?
【问题讨论】:
标签: arrays json postgresql sqlalchemy flask-sqlalchemy
我想使用 SQLAlchemy(使用 Postgres)将整数列表存储在 Column 中。
我是使用 ARRAY 还是 JSON 更好?我的猜测是 ARRAY 在这种情况下会有更好的性能,但我没有看到任何在线确认。
附加问题:如果我希望整数是唯一的怎么办?
【问题讨论】:
标签: arrays json postgresql sqlalchemy flask-sqlalchemy
PostgreSQL 收集 PostgreSQL 数组的数组成员统计信息,但不收集 JSON 数组的统计信息。这通常会带来更好的性能。加上 PostgreSQL 数组是类型化的,这似乎对您的情况有好处。
附加问题:如果我希望整数是唯一的怎么办?
你能扩展一下吗?如果您尝试添加任何一个元素的第二个副本,您希望它抛出错误吗?默默忽略加法? (虽然这两种情况都没有就地添加,但它实际上是新数组/JSONB 的赋值,恰好比旧数组多一个元素)。
【讨论】: