用途:在编写操作集合的代码前评估其基数(cardinality),防止“10 条数据可用、1000 万条变事故”的问题。
主要能力:将集合按基数分为 L1(代码控制,如枚举)、L2(现实约束,如国家)、L3(用户行为加限制)、L4(用户行为无限制)、L5(API/自动化加时间累积)五级;提出“二级规则”,即用户驱动集合日后常获 API 访问,应按 L5 处理。给出检测清单:遍历查询结果、用数据库填充 Map/Set、每实体一资源、无 LIMIT 查询、无界 Promise.all 扇出、每实体时间序列等。
使用方式:写代码前回答基数级别、当前与一年后数量、是否全量载入内存、是否每项创建资源、放大 1000 倍会怎样、是否可能被 API 填充。模式上:L1-L2 可直接迭代;L3+ 用游标分页并限制批量;聚合下推到数据库 GROUP BY;扇出超阈值改入队后台批处理;避免每实体无界资源,改用单个迭代 worker 或有界池。指标标签只用 L1/L2,按租户/用户/实体的分析走 ClickHouse、BigQuery、Tinybird 等列式存储,而非 Prometheus、Datadog 等按序列计费的监控系统。
适用场景:系统代码、数据库查询、通知扇出、定时任务、指标与时间序列设计。
限制:资料未提供安装命令、具体阈值取值、支持语言或平台范围,需结合实际情况判断。