贴出你的 explain SELECT t.*,m.uid,m.username,m.gender,m.oicq,m.groupid,m.memberid,m.icon AS micon,m.hack,m.honor,m.signature,m.regdate,m.signchange,m.lover,m.medals, m.showsign,m.payemail,m.fans,m.famouser, m.shouji,m.mystyle,md.postnum,md.digests,md.rvrc,md.money,md.credit,md.currency,md.thisvisit,md.lastvisit,md.onlinetime,md.starttime,qd.num AS qdnum,qd.days,qd.time FROM pw_posts29 t LEFT JOIN pw_members m ON m.uid=t.authorid LEFT JOIN pw_memberdata md ON md.uid=t.authorid LEFT JOIN pw_qiandao qd ON qd.uid=t.authorid WHERE t.tid='2008013' AND t.ifcheck='1' ORDER BY postdate LIMIT 319, 10;
ACMAIN_CHM 大哥 看见回帖了吗
看执行计划来说,建议你加上tid,ifcheck,postdate的联合索引。你有ifcheck,tid的单独索引,但是mysql只用到了tid的索引。 alter table pw_post29 add index idx_Tid_Ifchk_Postdate (tid,ifcheck,postdate); 然后你再试试看执行时间能不能达到你的要求。
explain SELECT t.*,m.uid,m.username,m.gender,m.oicq,m.groupid,m.memberid,m.icon AS micon,m.hack,m.honor,m.signature,m.regdate,m.signchange,m.lover,m.medals,
m.showsign,m.payemail,m.fans,m.famouser,
m.shouji,m.mystyle,md.postnum,md.digests,md.rvrc,md.money,md.credit,md.currency,md.thisvisit,md.lastvisit,md.onlinetime,md.starttime,qd.num AS qdnum,qd.days,qd.time
FROM pw_posts29 t LEFT JOIN pw_members m ON m.uid=t.authorid
LEFT JOIN pw_memberdata md ON md.uid=t.authorid
LEFT JOIN pw_qiandao qd ON qd.uid=t.authorid
WHERE t.tid='2008013' AND t.ifcheck='1'
ORDER BY postdate LIMIT 319, 10;
alter table pw_post29 add index idx_Tid_Ifchk_Postdate (tid,ifcheck,postdate);
然后你再试试看执行时间能不能达到你的要求。