PostgreSQL 设计优化case - 多对多 转 一对多(数组)

  1. 云栖社区>
  2. 阿里云数据库ApsaraDB>
  3. 博客>
  4. 正文

PostgreSQL 设计优化case - 多对多 转 一对多(数组)

德哥 2019-04-14 10:05:29 浏览575
展开阅读全文

标签

PostgreSQL , 数组 , 多对多 , 一对多 , udf , JOIN


背景

某个系统存储了会员的标签,以及标签的描述信息。业务上需要通过会员ID得到会员的标签,再得到描述信息。

每个会员有若干标签,原来是这么存储的

1、会员标签表,人数5亿左右,每个人平均有几百个标签,1500亿行左右。

create table a(uid int8, tag int);  

2、标签描述表。

几百上千条

create table b(tag int primary key, info text);  

查询如下

SQL

select a.*,b.* from a join b using(tag) where a.uid=?;  

问题

1、会员标签表,存在大量冗余数据,人数5亿,放大到了1500亿记录。

2、查询单个会员时,由于数据冗余的问题,涉及

网友评论

登录后评论
0/500
评论
德哥
+ 关注
所属云栖号: 阿里云数据库ApsaraDB