私はこのからの回答を使用したユーザ名のリストを抽出しています私は挿入を選択するか、挿入をループスルーする必要がありますか?
how to optimize mysql query if i have too many OR operators in my query?
今私は別の問題を持っています。私は友人のテーブルを2列だけで構成し、リクエスタとバディはどちらも複合プライマリキーを形成します。
私は上記の質問を使用して、特定のユーザーのためのFacebookの友達の配列を持っていると仮定します。
どのように私は自動的に私のWebアプリケーションで友達にするのですか?
つまり、「usera」というユーザーの5人の実際の友達がいる場合です。私は10の挿入ステートメントを実行する必要があります。
例:friendA、usera、usera、friendA friendAがuseraのフレンドとして反映されるようにします。
私は、挿入の選択が効率的であることを理解しています。残念ながら、これらの友人のユーザ名のリストは、私の上記の質問で仲間のSOのメンバーによって提案されたIN句を使用して値のPHP配列を介して取得されます。
どうすればよいですか?
名前を通るiは
A)ループ必要があり、ステップごとに2つのINSERTステートメントを実行しますか?
b)insert selectを使用しますか?それを正確に行う方法は?
私のDBは、このように設計されています
1表には、ユーザ名が主キーとfb_uidがNULL可能であり、ユーザ名とfb_uidを持つユーザーと呼ばれます。
1つのテーブルは、リクエスタと呼ばれる列を持ち、もう1つの列はバディと呼ばれます。どちらの列も複合キーを形成します。
友人テーブルに次のデータ(usera、userb)と(userb、usera)があると、2人のユーザー(usera、userb)間で友だちが確立されます。
ありがとうございます。
バルクインサートを使用するとパフォーマンスに問題がありますか?私はPHPを使用し、単一の一括挿入を構築するためにループを実行することを確信しています。私はまた、挿入を無視して挿入するか、遅延を挿入する必要がありますか? –
バルクインサートは一般的に通常のインサートよりも高速ですが、唯一の欠点は値の数に制限があることです(私は信じています)。 –
バルクインサートの途中で重複レコードがある場合はどうすればよいですか?それが放棄される前に成功した挿入物は捨てられるでしょうか? –