1

より効率的な (より速い) のは何ですか: 同じツイートをTweetテーブルに2 回格納するuser1user2または join betweenTweetを使用Friendして結果を得るには ?

Tweet => Id
         UserId
         SenderId
         JSONdata

User =>  Id

Friend => UserId 
          FriendId 

参加すると:

SELECT TOP 20 a.* FROM Tweet a INNER JOIN Friend b ON a.SenderId = b.UserId WHERE b.UserId = {0} 

または、送信者と受信者のツイートを 2 回保存し、単純なクエリを使用することもできます。

SELECT TOP 20 * FROM TWEET WHERE UserId = {0}

どちらがより高速か、結合の場合はどのタイプのインデックスを使用すればよいか、アドバイスをいただければ幸いです。

ありがとう

4

1 に答える 1

0

データを 1 回 (ツイート) だけ保存すれば、一貫性の問題は発生しません。これを重い OLAP システム (つまり、データ ウェアハウス) として開発している場合を除き、正規化する必要があります。

于 2012-06-03T20:01:38.643 に答える