嘟嘟社区

各位18CM的程序员 数据库怎么实现


MYSQL 几十万条产品数据(还会增加) 几千个用户(也会增加)
用户获取一个产品后 获取一个他没有使用过的产品
在大并发的情况下

怎么设计效率最高?

我现在想法是建一个 黑名单的表 black 然后里面产品 id 和用户 ID sel-ect * from 产品 whe-re id not in(sel-ect 产品 from black where 用户 ID=用户 ID)

但是感觉这样一旦数据庞大后而且大并发下 效率会非常低

产品 使用情况

产品 1 (用户 1 ,用户 3 ,用户 4 ,用户 5 )
产品 2 (用户 2 ,用户 4 ,用户 5 )
产品 3 (用户 1 ,用户 2 )
产品 4 (用户 2 ,用户 3 )
产品 5 (用户 3 )
产品 6 (用户 4 )
产品 7 (用户 2 ,用户 5 )
产品 8 (用户 6 )

想要
随机取出一个 用户 1 没有用过的产品

用户自己记录用过的 别的不就是没用过的
这种是需要搞个中间表,但是not in 用不了索引啊。数据量大的时候效率估计一般