来自德哥的PostgreSQL数据库系列
重新发现PostgreSQL之美 - 23 彭祖的长寿秘诀
场景
论坛、短视频、社交、电商等推荐业务
在推荐的过程中要过滤已读列表
挑战
已读列表巨大, 普通数据库没有多值列类型, 每个已读ID需要存储1条
使用not in过滤, 性能极差
PG 解决方案
数组,已读合并到1条
datasketch 近似类型,几K空间可存储上亿唯一值
压缩存储多值列 roaringbitmap类型, 效率和空间的平衡
partial index, 降低每次请求的无效数据