私はfqlクエリによってFacebookからデータを取得しようとしています。 私がやってみたいことの一つは、それぞれの呼びかけたレコードを取得することです。私は 'LIMIT [開始]、[終了]'コマンドでこれをやろうとしていますが、それらの数字の間のレコードを私に返すと仮定します。 [end] - [start]レコードを取得する代わりに、返されるレコードの総数が記録されます。私はレコードの乱数を取得し、私はチェックして、私はそこにあるより多くのレコードを取得しようとしていないことを確認することができます。FQLのリミットは予想よりも少ない結果を返します
LIMIT例:
http://graph.facebook.com/fql?q=SELECT actor_id, message,description FROM stream WHERE source_id =5878435678 Limit 2,10
これは7つのレコードを返すと仮定(カウントは0から始まります)と私は3レコードを取得します。 面白いthigは私が10の代わりに50を書いた時です。私は26のレコードを持っています。
私が求めたレコードの正確な量を得る方法を誰かに教えてもらえますか? タンクが先です!
+1この記事を前に読んでいますが、すぐに見つけられませんでした。 – ifaour
@Why:スピード。 「通常の」フェッチを先に実行してからTHENフィルタリングを行うと、クエリのキャッシュが少し簡単になります(あまり意味がありません)。それ以外の場合は、予測不可能な量のデータをフェッチする必要がありますか、Bはデータベースレイヤーにすべての可能な組み合わせのアクセス許可の特定のクエリを実行させます。だから、私たちはそれに対処しなければなりません。 :) –
いいえ、ほとんどのSQLシステムは信じられないほどの速度で正しく処理することができ、要求された量のデータを取得します。なぜFQLシステムは、Facebookがそのブログエントリに基づいて「誇りに思っている」ようなプログラマ/デザインの決定に過ぎないのか?私がFQLチームのデベロッパーであった場合、この冒険的な「ショートカット」が使用されていると、私は恥ずかしく思います。 – DMCS