我有一個需要幾分鐘的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