0

如果我想为特定实体创建状态/消息更新页面,有没有比这更好的方法:

  1. 获取您关注/订阅的所有实体
  2. 在状态表上执行 WHERE IN。

我担心的是:如果您关注 1000、2000 个实体怎么办?那是问题吗?进行这种数据检索的最佳方式是什么?

4

1 回答 1

1

你的计划(可能)不是一个好的计划。一般而言,WHERE IN 仅在项数较少且恒定时才适用。

大多数 WHERE IN 子句都可以转换为连接,这听起来没有什么不同。
试试这个(猜测模式):

SEKECT s.*
FROM followed f
JOIN status s ON s.entity_id = f.entity_id
WHERE f.user_id = ?

像这样编码会带来很好的性能,只要你有索引followed(user_id)status(entity_id)

于 2013-09-29T03:55:31.497 回答