数日前、私のウェブサイトで永続的なクエリを実行していましたが、完了するまでに数分かかりました(約3回実行しました)
それは私のデータベースをほとんど殺してしまい、すべてが遅くなり1040 too many connections
、いくつかのテーブルからデータを取得しようとしたときに得ました(たとえば、私のウェブサイトで最も使用されているテーブルであるセッションおよび設定テーブル-ほぼすべてのページがそれらを使用しています)、そして奇妙なことに、ウェブサイトからデータを取得しようとしていたのではなく、phpmyadmin からデータにアクセスしようとしていたのです。つまり、それらのテーブルに到達できませんでした
いずれにせよ、私はウェブサイトをダウンさせ、セッションテーブルを削除しましたが、どういうわけか修正されました(そのクエリを二度と実行したことのない治療法です)。
まず、これらのテーブルに追加するものを知りたいですか? それらは破損していましたか?接続制限に達したことは理解していますが、phpmyadmin内でそれを取得すべきではないと思いました
2 番目に重要なことは、エラーが発生しなくなったにもかかわらず、クエリの実行速度が大幅に低下したと感じていることです。何かをクリアまたは空にする必要があります!?
これがクエリです(各テーブルには約50〜60 000行あります)
SELECT
u.id, u.username , u.created_on , meta.full_name as fullname , meta.avatar , COUNT(s.val) as image_scores
FROM
users u
LEFT JOIN meta ON (u.id = meta.user_id)
LEFT JOIN images i ON (u.id = i.user_id)
LEFT JOIN score_history s ON (i.id = s.content_id)and s.content_type = 'image'
GROUP BY
u.id
ORDER BY
image_scores DESC
LIMIT 9