這是查詢統一醫學語言系統(UMLS)查找與規範化單詞相關的單詞。這個查詢結果是165MS,但如果我運行VIEW查詢這個相同的查詢它需要70秒。我是新來的MySQL。請幫幫我。mysql view super slow
查詢:
SELECT a.nwd as Normalized_Word,
b.str as String,
c.def as Defination,
d.sty as Semantic_type
FROM mrxnw_eng a, mrconso b, mrdef c, mrsty d
WHERE a.nwd = 'cold'
AND b.sab = 'Msh'
AND a.cui = b.cui
AND a.cui = c.cui
AND a.cui = d.cui
AND a.lui = b.lui
AND b.sui = a.sui
group by a.cui
視圖定義:從視圖
create view nString_Sementic as
SELECT a.nwd as Normalized_Word,
b.str as String,
c.def as Defination,
d.sty as Semantic_type
FROM mrxnw_eng a, mrconso b, mrdef c, mrsty d
WHERE b.sab = 'Msh'
AND a.cui = b.cui
AND a.cui = c.cui
AND a.cui = d.cui
AND a.lui = b.lui
AND b.sui = a.sui
group by a.cui
選擇:
select * nString_Sementic
where nwd = 'phobia'
這兩個選擇字符串是不同的?視圖語句中的一個缺少'a.nwd ='cold''。我不確定會增加多少額外結果,但這可能會對性能產生很大影響。 – ernie
這似乎是一個MySQL「bug」:http://www.mysqlperformanceblog.com/2007/08/12/mysql-view-as-performance-troublemaker/ –