2012-04-12 3 views
0

レコードが多い大きなカテゴリが1つあります。 と私はそれを並べ替える必要がありますtopic_lastpost_timeパフォーマンスレコードの紛失のあるカテゴリで改ページを行う

しかし、私はそれを行うときにmysqlは非常に遅いようです。 クエリを完了するのに3秒かかりました 私は索引をつけましたtopic_lastpost_timeフィールド

ここは例です。どうすればそれを上げることができますか?

# Query_time: 3 Lock_time: 0 Rows_sent: 50 Rows_examined: 36075 
SELECT t.topic_id, 
     t.m_id, 
     t.m_username, 
     t.topic_title, 
     t.topic_lastpost_time 
FROM  p_topics t 
WHERE t.fc_id = '21' 
     AND t.topic_state = '1' 
ORDER BY t.topic_type DESC, 
     t.topic_lastpost_time DESC 
LIMIT 0,50; 
+0

順の順序を変更してみてくださいは 'fc_id'ともインデックス化' topic_state'ていますか? –

+0

'fc_id'と' topic_state'に索引がないかもしれません。それを確認するには、 'SHOW CREATE TABLE p_topics'の結果を投稿してください。 – Bjoern

+0

はい、fc_id、topic_stateはすでに索引付けされています。 – TomSawyer

答えて

0

SELECT t.topic_id, 
    t.m_id, 
    t.m_username, 
    t.topic_title, 
    t.topic_lastpost_time 
FROM  p_topics t 
WHERE t.fc_id = '21' 
    AND t.topic_state = '1' 
ORDER BY t.topic_lastpost_time DESC , 
t.topic_type DESC 
LIMIT 0,50; 
+0

私はtop_testに最も重要なトピックが必要なので、topic_typeの優先度が必要です。 – TomSawyer

関連する問題