我有四张桌子:
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 (',,,,,')发布于 2013-07-30 13:26:37
可以使用视图来提高查询性能。(检查:视图)。顺便问一下,你是在使用索引吗?索引还可以提高性能。
发布于 2013-07-30 13:18:14
尝试在w_word上设置一个索引,并确保您所连接的所有列都有索引。
如果您仍然得到非常慢的查询,请尝试消除连接,找出查询的哪一部分是导致慢速下降的原因。然后集中精力优化这一点。
有很多工具可以用来分析单个查询,看看需要做些什么来加快速度。
https://stackoverflow.com/questions/17948029
复制相似问题