私は2つのテーブルを持っていますall_users
:vip_users
all_users
テーブルにはシステム内のすべてのユーザーのリストがあり (あなたは言いませんか?)、現在、約 57,000 のレコードがあり、vip_users
テーブルには約 37,000 のレコードがあります。
両方のテーブルの主キーは自動インクリメントid
フィールドです。all_users
テーブルは属性数の点で大きく(約20、そのうちの1つはemail
)、vip_users
テーブルには(と一緒にid
)email
属性しかありません。
これを行うことで「非Vip」ユーザーを照会したかったのです( SOに関するこの質問の助けを借りて):
SELECT all_users.id, all_users.email
FROM all_users
LEFT OUTER JOIN vip_users
ON (all_users.email=vip_users.email)
WHERE vip_users.email IS NULL
そして今、ついに問題が発生しました-phpmyadminでこのクエリを実行しましたが、20分後でも完了に時間がかかりすぎたため、クエリを閉じてhttpdサービスを再起動する必要があり、サーバーの負荷が2を超え、サイト(ロードが遅すぎたため、役に立たなくなりました。だから、私の質問は - どうすればこのクエリを作成できますか? いくつかのスクリプトを作成して一晩実行しますか? phpmyadmin を使用しないでください (これが問題の原因でしょうか?)、または別の SQL クエリを使用する必要がありますか?
これについてのあなたの考えを助けてください。