gpt4 book ai didi

php - mySQL + Facebook FQL 查询使我的页面非常慢。如何提高性能?

转载 作者:行者123 更新时间:2023-11-29 03:10:06 25 4
gpt4 key购买 nike

我在 Facebook 管理着许多粉丝页面,我制作了一个小脚本让我看看他们有多少粉丝。我已经将我想要的页面 (page_name + page_id ) 保存在 mySQL 数据库中。
脚本进行FQL查询并打印每个页面有多少粉丝。
问题是当我添加 FQL 查询时,页面变得有点慢。我想如果我添加其他 FQL 查询,它的加载速度会变得非常慢。

我的问题是:可以使用哪些方法来尽可能快地加载我的页面?
我想到了将粉丝和其他数据保存在数据库中。但这意味着我不会有实时数字。

谢谢。

$my_pages = mysql_query("SELECT page_name, page_id FROM pages WHERE user = '".$my_id."' ");

while($page_name = mysql_fetch_assoc($my_pages)) {
$fan_count = $facebook->api("/fql", array("q" => "SELECT fan_count FROM page WHERE page_id = '".$page_name['page_id']."'"));
echo $page_name['page_name'].'-'.$fan_count['data'][0]['fan_count'], '<br />';

}

最佳答案

最好从数据库获取所有页面 ID,然后对 Graph API 发出一次调用并迭代结果。

$my_pages = mysql_query("SELECT page_name, page_id FROM pages WHERE user = '{$my_id}';");

$pages = array();
while($page = mysql_fetch_assoc($my_pages)) {
$pages[] = $page['page_id'];
}
$pagesIds = implode(',', $pages);
$pagesFanCounts = $facebook->api("/fql", array(
"q" => "SELECT page_id, name, fan_count FROM page WHERE page_id IN ({$pagesIds})"
));

foreach ($pagesFanCounts['data'] as $page){
echo "{$page['name']} - {$page['fan_count']}", '<br />';
}

顺便说一句,永远不要但永远不要在迭代次数未知的循环中调用这样的外部服务,并且肯定不会在打开与数据库的连接时调用(这不仅会减慢单个用户的结果,而且可能会影响其他用户访问者/应用程序用户)!

附言
您可以从 removed 和 outdated 中阅读一些关于 FQL 性能的内容(FQL 内容在概念上仍然正确)Performance Guide (web.archive.org)

关于php - mySQL + Facebook FQL 查询使我的页面非常慢。如何提高性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9866682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com