哪种 LISTEN/NOTIFY 实现性能更高且资源效率更高?请解释原因。
具有动态通道
// Send message to user with ID = 1 with content hello
NOTIFY message_1, 'hello';
用户使用独特的频道收听。每个用户都是唯一的
LISTEN message_1
或
动态有效负载
// Send message to user with ID = 1 with content hello
NOTIFY message, 'id=1;content=hello';
每个用户都使用同一频道收听并根据他们的 ID 获取内容
LISTEN message
我尝试使用 pg_notify 实现 websocket 通知,我尝试使用动态通道,但对如果我将所有这些组合到一个通道中的性能有点好奇。
使用单个通道的动态有效负载通常比每个用户使用唯一的通道更有效。使用动态负载,您可以将消息发送到单个通道,并让用户根据负载内容过滤出与他们相关的内容。这简化了实施,还减少了管理多个通道的开销。