【发布时间】:2010-08-20 20:23:18
【问题描述】:
我有一个 mysql 查询需要几分钟,这不是很好,因为它用于创建网页。
使用了三个表:poster_data 包含有关各个海报的信息。 poster_categories 列出了所有类别(电影、艺术等),而 poster_prodcat 列出了 posterid 编号及其所在的类别,例如一张海报会有多行,比如电影、印第安纳琼斯、哈里森福特、冒险电影等。
这是慢查询:
select *
from poster_prodcat,
poster_data,
poster_categories
where poster_data.apnumber = poster_prodcat.apnumber
and poster_categories.apcatnum = poster_prodcat.apcatnum
and poster_prodcat.apcatnum='623'
ORDER BY aptitle ASC
LIMIT 0, 32
根据解释:
这需要几分钟。 Poster_data 刚刚超过 800,000 行,而 poster_prodcat 刚刚超过 1700 万行。使用此选择的其他类别查询几乎不引人注意,而 poster_prodcat.apcatnum='623' 有大约 400,000 个结果并且正在写入磁盘
【问题讨论】: