0

我有 4 张桌子:

bag_of_words(
    ch_id,
    frequency,
    number,w_id
)

clinical_history(
    ch_complete,
    ch_id,p_id
)

patients(
    p_id,
    p_name
)

words(
    w_id,
    w_word
)

我有一个选定单词的列表。我需要从表中选择w_wordp_namenumberfreqencych_id

我有这个查询,但它很慢,我需要它更快

SELECT  
    w_word, 
    p_name, 
    number, 
    frequency, 
    bag_of_words.ch_id
FROM
    bag_of_words
LEFT JOIN 
    words 
ON 
    words.w_id=bag_of_words.w_id
LEFT JOIN 
    clinical_history 
ON 
    bag_of_words.ch_id=clinical_history.ch_id
LEFT JOIN 
    patients 
ON 
    patients.p_id=clinical_history.p_id
WHERE 
    words.w_word IN (',,,,,')
4

2 回答 2

0

尝试在 w_word 上放置一个索引,并确保您加入的所有列都有索引。

如果您仍然遇到非常慢的查询,请尝试消除连接以找出查询的哪一部分导致速度变慢。然后集中精力优化它。

有很多工具可用于分析单个查询,并了解需要做些什么来加快它们的速度。

于 2013-07-30T13:18:14.343 回答
0

您可以使用视图来提高查询性能。(检查:意见)。顺便说一句,你在使用索引吗?索引还可以提高性能。

于 2013-07-30T13:26:37.700 回答