我有一个需要几分钟的mysql查询,这不是很好,因为它用于创建网页。重写mysql选择减少时间并将tmp写入磁盘
使用三张表: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个结果并正在写入磁盘
请问为什么选择innodb? (我不是真的了解差异。) – Ian 2010-08-21 01:03:04
你检查了解释计划和结果查询速度吗? 聚集在一个字的索引。 – 2010-08-21 01:03:53
您可能也想看看这个http:// tag1consulting。com/MySQL_Engines_MyISAM_vs_InnoDB – 2010-08-21 01:12:26