Это никоим образом не сравнимо. Хотя вы можете получить те же данные (в некоторых случаях) из обоих
их цели совершенно разные: FQL - это язык запросов, Graph - это API.
Вызов FQL-запроса, если используется новый JS SDK, сам по себе вызов API Graph ...
Вы можете (и, вероятно, должны, если вы беспокоитесь о реальном сравнении, а не о теоретических предположениях), сравнивать скорость вызовов, возвращающих одни и те же данные, но вы должны принять во внимание некоторые вещи:
- API Graph по-прежнему отстой при условиях фильтрации данных и агрегировании данных
- FQL просто не может предоставить вам слишком много функциональности, необходимой в современных приложениях (например, Обновления в реальном времени )
- Graph API имеет возможность пакетных вызовов, что может значительно ускорить процесс, это также может быть использовано для вызова fql.query и fql.multiquery (немного громоздким способом).
- График API порождает при фильтрации данных с
Field Expansion
Рассмотрим следующий пример из документации по FQL , подзапрос, извлекающий всю пользовательскую информацию для активного пользователя и друзей:
SELECT uid, name, pic_square FROM user WHERE uid = me()
OR uid IN (SELECT uid2 FROM friend WHERE uid1 = me())
Этого просто невозможно достичь с помощью одного вызова API Graph. (см. Обновление)
Как только вы определите желаемое подмножество данных для получения, вы можете выбрать подходящий метод поиска в зависимости от ваших требований.
Кстати, FQL намного старше, чем Graph, мы оставили его в стороне от FBML (rip) и FBJS (rip)
Обновление:
График API , предоставляющий путь для Пакетных запросов и определяющий зависимости между операциями в запросе. Например, тот же пример, что и выше, можно получить за один вызов Graph API
POST https://graph.facebook.com/
POST Data:
batch=[
{
"method": "GET",
"name" : "get-friends",
"relative_url": "me/friends?fields=id",
},
{
"method": "GET",
"relative_url": "?ids={result=get-friends:$.data.*.id}&fields=id,name,picture"
}
]
Обновление 2:
По состоянию на 30 августа 2012 года Graph API также поддерживает Расширение поля в качестве дополнительного (очень мощного) механизма поиска данных (включая вложенные данные)