Mysql SQL多表查询工作缓慢
我有4张桌子:Mysql SQL多表查询工作缓慢,mysql,sql,Mysql,Sql,我有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\u word,p\u name,编号,频率,以及ch\u id中进行选择 我有这个查询,但
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\u word
,p\u name
,编号
,频率
,以及ch\u 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 (',,,,,')
尝试在w_word上放置索引,并确保您加入的所有列都有索引 如果您仍然得到非常慢的查询,请尝试消除连接,以确定查询的哪一部分导致了速度慢。然后集中精力优化它
有很多工具可用于分析单个查询,并查看需要执行哪些操作来加快查询速度。您可以使用视图来提高查询性能。(勾选:)。顺便问一下,你在使用索引吗?索引也可以提高性能。我认为如果没有加入,它会运行得很快,但我找不到方法。你能推荐任何工具吗?@user2605046我没有使用过它,但我认为它应该有助于提高你的性能。并检查视图。创建视图将提高性能有一种不用连接进行查询的方法,您可以使用子查询而不是连接。但是我建议你使用join。是否检查了创建视图?视图或创建临时表是否更好?