标签筛选 php,标签筛选优化方案

如图:

bVbjfYU?w=2254&h=1056

这样的标签筛选,如果直接从数据库里拿,sql就可以直接搞定,但是不太理想,假如每个标签的房源都有一个 Redis 的列表,比如:

区域(朝阳区)的列表 - 1,23,456,1211,983·····

面积(80平米)的列表 - 21,243,1456,1211,983,442·····

这样的话,有什么好的优化方案

我想了两个方案:

① 每个标签的列表,30个一组,

区域(朝阳区)的列表 - 组1 - 1,23,456,1211,983·····

区域(朝阳区)的列表 - 组2 - ·····

面积(80平米)的列表 - 组1 - 21,243,1456,1211,983,442·····

面积(80平米)的列表 - 组2 - ·····

假如每页显示10条数据,用户选择的是朝阳区80平米的房子,我就拿上面的地区列表的组1和面积的组1取交集,如果结果够10条,则满足需求,如果不够10条,就再取第二组的信息,直到显示10条信息

但是这样存在一个很大的问题:越往后分页,计算量越大,数据量再一大,效果肯定不理想

而且这些要想得出总条数也很困难(虽然现在一般都不显示总记录了),即便是标签不分组的情况,假如朝阳区的列表有1000W个,那这个取交集的时候,一下扔到内存,似乎也比较尴尬

② 用sql+定时任务,把每种可能性的结果存在Redis,但是标签很多,就会有很多sql,感觉有点得不偿失

请教诸位,这类问题,有什么好的解决方案吗?

谢谢诸位

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值