MySQL SQL ステートメントは最適化されています [code = sql] select tid, count (*) as count from `pw_posts` where fid = 77 group by tid Order by Countrc Limit 10 [/code] このうち、tid と fid はそれぞれインデックスを作成しています。テーブルには 160 万個のデータがあります。これを表示するには、次のようにします。 SIMPLE pw_posts ref fid fid 2 const 38112 where の使用; 一時ファイルの使用
最初にデータをキャッシュする必要があります INSERT INTO `pw_posts_stat`(tid, fid, count) SELECT tid, fid, count(*) as count FROM ` pw_posts` GROUP BY tid, fid
すると、すべてのクエリが非常に高速になります SELECT tid, count FROM `pw_posts_stat` WHERE fid=77 ORDER BY count DESC LIMIT 10 SELECT tid, count FROM `pw_posts_stat` WHERE fid=77 ORDER BY count DESC LIMIT 11, 10
SELECT tid, count FROM `pw_posts_stat` WHERE fid=66 ORDER BY count DESC LIMIT 10