Facebook FQL - 非常慢

Kam*_*ini 5 php facebook facebook-graph-api

$access_token = $facebook->getAccessToken();
$query = "SELECT uid FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=me())";
$query = urlencode($query);
$fql_query_url = 'https://graph.facebook.com/'. 'fql?q='.$query. '&access_token=' .    $access_token;
$fql_query_result = file_get_contents($fql_query_url);
$fql_query_obj = json_decode($fql_query_result, true);
Run Code Online (Sandbox Code Playgroud)

这是查询.它让我更快,因为我的朋友有限.但是一些应用程序用户表示,如果他们有大约2000多个朋友,那对他们来说非常慢.他们说也需要30秒到几分钟.

为什么它会慢很多?这个请求有什么问题吗?

zer*_*kms 4

好吧,第一件事 - 只要您过滤用户uid并仅uid在此之后进行选择 - 外部查询看起来是多余的。所以最终的查询可以简化为

SELECT uid2 FROM friend WHERE uid1=me()
Run Code Online (Sandbox Code Playgroud)

第二件事:使用fb php sdk来执行FQL查询更方便一点,而不是file_get_contents,例如:

$facebook->api("/fql?q={$fql}");
Run Code Online (Sandbox Code Playgroud)

(摘自/sf/answers/547928531/