首页 > 解决方案 > 将 10000 个整数数组值存储为数组列类型性能比较单独的表与 Postgres 中的 JOIN 查询

问题描述

我在 Postgres 数据库中有产品表。我必须根据用户的密码显示产品是否可以在该区域使用。所以为此我必须为每个产品存储密码。每个产品最多可以有 12000 个密码。

所以我的问题是将pincode作为数组列类型存储在带有索引的主产品表中,还是使用单独的表来进行JOIN查询是否有效。

根据我的理解,存储在数组列中是有效的,因为必须在列表中显示具有并行 1000 个用户(有时)的过滤器/搜索的产品。所以与此相比,连接表将太重。但是通过这样做,我必须对所有与产品相关的事情进行本机查询,因为 Spring Boot JPA 不支持整数数组类型,所以不能利用 ORM。使用整数数组列查询是否有任何缓慢?它的第二件事是将它存储为字符串数组还是整数数组..

需要帮助以使其高效。

标签: arrayspostgresql

解决方案


阵列是您方案中的最佳方式,只要您将使用它来检查产品在该区域是否可用

此外,如果您正在计划任何其他常规操作,即获取可维修的产品列表,特别是 PINCODE 等,那么您不应该采用这种方法。您应该进行适当的规范化并将关系保存在单独的表中。


推荐阅读