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_wordテーブル、p_namenumberfreqency、およびから選択する必要があります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 (',,,,,')
4

2 に答える 2

0

w_word にインデックスを設定し、結合するすべての列にインデックスがあることを確認してください。

それでもクエリが非常に遅い場合は、結合を削除して、クエリのどの部分がスローダウンを引き起こしているかを突き止めてみてください。次に、それを最適化することに集中します。

個々のクエリを分析し、それらを高速化するために何をする必要があるかを確認するために使用できるツールがたくさんあります。

于 2013-07-30T13:18:14.343 に答える
0

ビューを使用して、クエリのパフォーマンスを向上させることができます。(チェック:ビュー)。ところで、インデックスを使用していますか? インデックスはパフォーマンスも向上させます。

于 2013-07-30T13:26:37.700 に答える