mysql twitter/facebook 喜欢状态提要

标签 mysql facebook select twitter status

我有两张 table 。一个名为 status 的像这样...

user_id |  status
--------+-----------
      1 |  random status from user 1
      2 |  random status from user 2
      3 |  random message from user 3
      4 |  staus from user 4 
      1 |  second status for user1

等等... 和另一个像这样命名的 users_following...

user_id |  is_following
--------+-----------
      1 |  2
      1 |  3
      2 |  1
      3 |  2

表示用户 1 同时关注用户 23 等等......

那么,假设我选择了用户 1。显示用户 1 关注的用户状态更新的最佳查询(性能方面)是什么,在本例中是用户 23

目前我有类似的东西

SELECT * from status WHERE user_id IN(SELECT is_following FROM users_following 
WHERE user_id='1') LIMIT 0,5 

但如果一个用户关注了成千上万的用户,我不认为这对性能有好处

最佳答案

  1. 您忘记了ORDER BY date_posted DESC(或status_id)
  2. INNER JOIN 在这里会更好

        SELECT s.*
          FROM status s
    INNER JOIN users_following f ON f.is_following = s.user_id
                                AND f.user_id = 1
      ORDER BY s.status_id DESC
         LIMIT 0, 5 
    

注意事项
1.整数1
两边没有单引号 2. 你应该创建复合索引user_id + is_following

关于mysql twitter/facebook 喜欢状态提要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4523317/

相关文章:

sql - Android上的SQLite:仅从datetime选择时间

java - MySQL语句中根据另一个表列动态确定列值

python - 如何调试MySQL错误消息: Caught an exception while rendering

php - MySQL基于PHP数组的最低值更新

java - applicationId 不能为空,但 xml 语法正确

linux - facebook, twitter 使用哪个 linux 发行版

css - 在 HTML5 和 CSS 中选择合适的父级宽度

php - 两个 SELECT 语句合并为一个 SQL

MySQL批处理文件更新

facebook - 公开 Facebook API secret 有哪些潜在问题?