コンテキストのビット私は現在、http://www.clubsofa.orgと呼ばれるWebサイトで働いていますコンセプトは、人々が許可する意図でGoogleマップ上で友人検索の友人を行うことができるということです旅行中に2度目の友達と連絡をとる。 現在、セットアップはPostgreSQLであり、2つの一意のユーザーID(友人関係は一度だけ格納されます。たとえば、aという人物、bはbと友人、bはaの友達です)が格納されています。友人の友人に質問するとき、私は現在のユーザーのすべての友達を取得して、すべての友人を検索しますが、これは実行中のAWS ec2インスタンスではごくわずかな時間がかかります。 私が試したもう1つの方法は、友人関係を2つの方法で保存してから最初の列にインデックスを付けることですが、これはやや遅くなりました。 私が設定しようと考えていた方法のひとつは、person_detailsのエントリに人の友人をJSONオブジェクトとして格納しておき、これを遅延更新することでしたが、これをまだテストしていません。友人データベーステーブルのperformant友人を設計する方法
これを設定する方法はありますか? (friend_from、friend_to上のユニークなインデックス付き
あなたはより簡単にフォームのそれにビューを配置することによって、単に「一方向」で友情を格納したテーブルを照会することができ
あなたはPostgresのを使用している場合は、それぞれの友人のために列を持つ友人のテーブルとして、SQLish方法で友人を保存します。 –
私は現在それを持っており、それは非常に遅いです。それを行うためのより効果的な方法はありませんか? –
"*非常に遅い*" - 現在のテーブル定義( 'create table'ステートメントとして)を使用しているクエリを表示してください:http://wiki.postgresql.org/wiki/SlowQueryQuestions –