そのため、500 万件のレコードを含むデータベースがあり、Q&A サイトの情報が保存されています。構造は...
question, qid, quserid, answer, auserid;
(qid は質問の ID 番号です)
特定のユーザーが回答していない質問があるすべてのユーザーを見つけて、特定のユーザーが回答していない質問の量で並べ替えようとしています。これが私のクエリです:
SELECT quserid, COUNT(quserid)
FROM `qanda`
WHERE qid NOT IN (SELECT qid FROM `qanda` WHERE auserid='myusername' GROUP BY qid)
GROUP BY quserid
ORDER BY COUNT(quserid) DESC
LIMIT 0,1000;
問題: 2 時間以上かかっており、時計はまだ刻々と過ぎています! このデータベースを高速化する方法を知っている人はいますか? データベースか何かにバグがあると思います。通常、単純なクエリにせいぜい 30 秒しかかからないので、これは少しばかげています。微調整を知っている人はいますか?おそらく、構成ファイルまたは何かへの単純な変更ですか?
..........
これは、コピーして貼り付けたばかりのデータベースからのデータです。フォーマット不足で申し訳ありません。
you could have any one person in the entire wor... greendaystud ive got the person i want...its great...because sh... •glitter•rock• 191437 If you could have any one person in the entire wor... just~another~slave2tears i already got em
•glitter•rock• 191437 If you could have any one person in the entire wor... korn_chick2007 matt or chris... i have feelings for them
•glitter•rock• 189555 why are you so sexy?
just~another~slave2tears my b/f says i am...i dun tink so tho
•glitter•rock• 189555 why are you so sexy?
korn_chick2007 im not
•glitter•rock• 189555 why are you so sexy?
MyKool-AidsSexy i dont think i am
†brokengirl† 115228 If you are supposed to expect the unexpected,
doe... death-tone yip
†brokengirl† 115228 If you are supposed to expect the unexpected,
doe... _doieverknowwhoiam_ you know whats weird? my friend sandy says that a ...
†brokengirl† 115228 If you are supposed to expect the unexpected,
doe... Cute_Physco_kitty Pretty much..
†brokengirl† 115228 If you are supposed to expect the unexpected,
doe... Leslie02 WHAT! OK, now im confused!
†brokengirl† 114995 Why does my listerine taste like sausage this
mor... death-tone what's listerine?
†brokengirl† 114995 Why does my listerine taste like sausage this
mor... _doieverknowwhoiam_ i don't know, and maybe it's jut me bu...
†brokengirl† 114995 Why does my listerine taste like sausage this
mor... darksunofdeath How old is the listerine pack?
†brokengirl† 114995 Why does my listerine taste like sausage this
mor... Cute_Physco_kitty uhh... New brand of Listerine?
†brokengirl† 114995 Why does my listerine taste like sausage this
mor... Leslie02 did you have sausage for breakfast? †brokengirl† 104305 What should I name my pinky toe on my left
foot?¿... death-tone "Pinkytoe"
そして、便利な列タイトルを使用した予想される出力...
Questioner User ID | Number of questions asked by the Questioner that were unanswered by 'myuserid'
Greenbay Packer | 6
DollyDoll | 63
PsychoticPokemon | 62
HelloKitty | 61
GreenDayFan | 60
...
IDontAskManyQuestion | 2<br>
WhatsAQuestion? | 1<br>
そして、ここに EXPLAIN 出力があります
> mysql-> EXPLAIN
> ->
> -> SELECT quserid, COUNT(quserID)
> -> FROM `qanda`
> -> WHERE qid NOT IN (SELECT qid FROM `qanda` WHERE auserid='boxocereal' GROU P BY qid)
> -> GROUP BY quserid
> -> ORDER BY COUNT(quserid) DESC
> -> LIMIT 0,1000;
>
+----+--------------------+-------+------+---------------+------+---------+-----
> -+---------+----------------------------------------------+ | id | select_type | table | type | possible_keys | key | key_len |
> ref | rows | Extra |
> +----+--------------------+-------+------+---------------+------+---------+-----
> -+---------+----------------------------------------------+ | 1 | PRIMARY | qanda | ALL | NULL | NULL | NULL |
> NULL | 3167995 | Using where; Using temporary; Using filesort | | 2
> | DEPENDENT SUBQUERY | qanda | ALL | NULL | NULL | NULL |
> NULL | 3167995 | Using where; Using temporary; Using filesort |
> +----+--------------------+-------+------+---------------+------+---------+-----
> -+---------+----------------------------------------------+ 2 rows in set (0.02 sec)
>
> mysql->