我有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_word
,p_name
,number
,freqency
和ch_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 (',,,,,')
答案 0 :(得分:0)
尝试在w_word上添加索引,并确保您加入的所有列都有索引。
如果您的查询仍然很慢,请尝试删除联接以确定查询的哪个部分导致速度减慢。然后集中精力优化它。
有很多工具可用于分析各个查询,并了解需要采取哪些措施来加快速度。
答案 1 :(得分:0)
您可以使用视图来提高查询性能。 (检查:Views)。顺便问一下,你使用索引吗?索引也会提高性能。