The Graph and FQL APIs are similar in that they both access the same basic Facebook objects: nodes, collectively called the “social graph." The Graph API is a simple, consistent, and fairly direct way to access these objects. If you know exactly what you were looking for, the Graph API is an easy way to get it.
FQL, on the other hand, is a query language (e.g., SQL). This allows you to search for graph objects that would be impossible (or difficult) to search using the simple direct Graph API.
Another FQL feature associated with the Graph API is the ability to batch enter multiple queries in one call (which can save you a lot of time in the opposite direction for multiprocessor queries).
Ultimately, the Graph API seems to be a more direct idea of what is happening “under the covers” in a social graph, so I find it easier to use when I can. But if my Graph API request becomes very long or incomprehensible (or at any time when I need to make more than one related social graph request), this is a sign that he needs to switch to FQL.
source share