Web サイトでこの Mysql クエリを実行して、膨大な量のデータを取得する必要があります: (3 つのテーブル、それぞれに 100,000 + レコード)
SELECT on_resume.*, on_users.subscribed, on_users.user_avatar, on_resume_page.*
FROM on_resume
LEFT JOIN on_users ON (on_resume.resume_userid = on_users.user_id )
LEFT JOIN on_resume_page ON ( on_resume.resume_userid = on_resume_page.resume_userid)
WHERE on_resume.active= '1'
GROUP BY on_resume.rid
ORDER BY on_resume.rid DESC
LIMIT 0,18
これを Phpmyadmin sql セクションで実行すると、mysqld サービス全体がダウンし、再起動する必要があります。
今、私はこのクエリをテストしていましたが、条件を使用しないと、クエリがうまくいくことがわかりましGroup by
たOrder by
。
SELECT on_resume.*, on_users.subscribed, on_users.user_avatar, on_resume_page.*
FROM on_resume
LEFT JOIN on_users ON (on_resume.resume_userid = on_users.user_id )
LEFT JOIN on_resume_page ON ( on_resume.resume_userid = on_resume_page.resume_userid)
WHERE on_resume.active= '1'
LIMIT 0,18
行 0 ~ 17 を表示しています (合計 18 行、クエリにかかった時間は 0.4248 秒)
どうしてこうなるのか、どうすれば直せるのでしょうか? ...
注 :どちらの場合でも、group by または Order by だけで SQL クエリをテストしましたが、そのうちの 1 つでもクエリが失敗し、サーバーがハングします。
編集:この問題は、列をon_resume_page.resume_userid
インデックス化することで解決されます。