0

我正在運行一系列查詢來查找朋友的最近位置帖子,獲取用戶個人資料數據和地點信息。我能夠做到這一點的唯一方法是4個查詢,似乎在800ms範圍內進行基準測試,速度不是很快。查詢看起來是這樣的任何方式來加快/優化facebook多重查詢?

{ 
    "posts": "select id,app_id,author_uid,post_id,message,post_id,tagged_uids,page_id,timestamp from location_post where author_uid in (select uid2 from #friends) and timestamp < 1393537146 order by timestamp desc limit 3", 
    "placenames": "select name from page where page_id in (select page_id from #posts)", 
    "friends": "select uid2 from friend where uid1 = me()", 
    "usernames": "select name,uid,pic from user where uid in (select author_uid from #posts)" 
} 

我認爲它真正掛斷是第一個查詢是「朋友」,因此它查詢所有朋友,然後使用它來查找最近的帖子。

任何優化建議或其他策略,將不勝感激。

+0

「我認爲它真正掛斷是第一個查詢」 ---有你試圖刪除該查詢以確認您的猜測? – zerkms

+0

我無法刪除它,其他人將失敗。它們並不相互獨立。 – Brian

+0

好的。你試過只運行第一個嗎?那麼第二個,等等? – zerkms

回答

0

你至少可以換的職位查詢裏面的朋友查詢,因爲這只是引用存在,是這樣的:

{ 
    "posts": "select id,app_id,author_uid,post_id,message,post_id,tagged_uids,page_id,timestamp from location_post where author_uid in (select uid2 from friend where uid1 = me()) and timestamp < 1393537146 order by timestamp desc limit 3", 
    "placenames": "select name from page where page_id in (select page_id from #posts)", 
    "usernames": "select name,uid,pic from user where uid in (select author_uid from #posts)" 
}