所以,我有一个包含 500 万条记录的数据库,它存储了问答网站的信息。结构是...
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>
这是解释输出
> 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->