2012-02-18 14 views
0

私はMysqlに2つのテーブルがあり、両方とも数百万のレコードがある場合には不思議に思っていました。 私たちは2つのテーブルの一部に参加したいので。どうすればそれを達成できるのでしょうか?もし私がlimitを使うならば、それはまずすべてのレコードを照会し、結果を制限するという私によると です。 あなたの提案を感謝します。ありがとう全体ではなく2つのテーブルの一部を結合する方法

2つのテーブルがあると考えてください。 ユーザー:(自動インクリメントのid) ID、名前、電子メール、性別

user_actions:我々はユーザーのためではなく、アクションを照会する必要が ID、USER_ID、action_id、ACTION_DATE

(USER_IDがここに外部キーです)テーブル内のデータが膨大であるため、一度にすべてのデータが表示されます

+0

投稿コード(テーブル作成文とクエリ) –

+0

私の投稿を編集しました。これは私の質問を理解するのに役立ちます – rajesh

+1

@rajesh、なぜ限定されたレコードをチェックしたいですか? MySQLはそれが最善のことをしましょう。両方のテーブルに何百万ものレコードがあっても、両方のテーブルでJOINを実行して、MySQLが目的の結果を照会できるようにします。そして、正しいインデックスを使用することを忘れないでください – Abhay

答えて

0

WHERE句を使用して、結合で使用されるレコードを制限することができます。詳細を知りたい場合は、テーブルの一部をどのように選択するかについての詳細を提供する必要があります。

+0

しかし、この方法では、一致するwhere句のすべてのレコードをチェックします。私は制限付きレコードをチェックしたい – rajesh

0

エンドユーザーに結果を表示する場合は、ページング戦略を使用してページ単位で結果ページを表示できます(たとえば、ページあたり50行)。 mysqlのlimitキーワードを使用して各ページを生成できます。

hereがあります。

1

日付フィールドにインデックスを追加してから、where句を使用して日付が1つ未満で、別の日付よりも大きくなるようにする必要があります。インデックスは、制限内のすべてのレコードを検索しないようにする必要があります。

関連する問題