投稿が読まれたときに (Google リーダーが行ったように) 記録する RSS リーダーを構築しています。下にスクロールすると、「記事を読んだ」テーブルに行を挿入して投稿を既読としてマークする程度まで機能していciid
ます。uid
dateRead
現在、「すべて既読にする」機能を提供する方法を考えています。たとえば、未読の記事が 25 件しかない場合、それは簡単なことです。メインの article テーブルに 25 個の記事をクエリします。サブクエリを使用して、現在のユーザーが未読の記事を特定し、ciid
既読としてマークする必要がある を収集し、新しい既読エントリを挿入します。しかし、未読のエントリが 20,000 件ある場合はどうなるでしょうか。20,000 の未読エントリを取得し、それらを収集ciid
してから MySQL サーバーに 20,000 の挿入コマンドを送信するのは、かなり非効率的です。
おそらくこれらすべてを直接処理する SQL クエリを使用して、これを行うためのより効率的な方法はありますか? システムに 1 人か 2 人のユーザーしかいない場合は、私の非効率的な方法は問題にならないと思いますが、システムを比較的適切に拡張したいと考えています。