我有一个包含userid' s(int increment)的表,大约有4M条记录。
我想仅向25%的用户展示新功能。
选择这些25%用户的最佳方式是什么?
答案 0 :(得分:2)
您可以使用某种Fisher Yates随机播放算法随机选择“第一个' 25%的用户ID。
即,选择1到4M之间的随机数。这是您的第一个用户,将其添加到某个地方的集合中。重复,直到您的收藏中有1M(25%)个用户。
一旦拥有了所有用户,请在表格中以某种方式标记它们。
答案 1 :(得分:0)
这个怎么样?
if (user.Id <= (maxId * 0.25))
{
// Show a new feature
}
答案 2 :(得分:0)
另一个想法是你可以设置一个浏览器cookie,它是'myAwesomeFeature = A'或'myAwesomeFeature = B'。如果尚未设置cookie,如果0-100之间的随机数为25或更小,则将其设置为“B”。否则,'A'。如果已经设置了cookie,只需使用它。
具有易于测试的额外好处,因为您可以轻松地强迫自己在任何您想要的组中。它只适用于多个功能,因为您只需要更改cookie名称。只要cookie没有过期,同一个用户就会获得相同的组。