全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

IP归属甄别会员请立即修改密码
查看: 423|回复: 2
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1#
发表于 2022-7-24 12:33:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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 没有用过的产品
2#
发表于 2022-7-24 12:45:48 | 只看该作者
用户自己记录用过的 别的不就是没用过的
3#
发表于 2022-7-24 13:06:59 | 只看该作者
这种是需要搞个中间表,但是not in 用不了索引啊。数据量大的时候效率估计一般
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-11-7 01:31 , Processed in 0.065117 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表