SELECT t.tid, t.author, t.authorid, t.subject, t.lastpost, t.views, t.replies, m.gender, f.fid, f.name FROM vs.threads t, vs.members m, vs.forums f WHERE 1 AND m.uid=t.authorid AND f.fid=t.fid ORDER BY t.displayorder数据库名称为: vs.查询三个表:
threads,帖子表
forums, 论坛表
members, 会员表这行语句效率太差,该怎么优化啊。
threads,帖子表
forums, 论坛表
members, 会员表这行语句效率太差,该怎么优化啊。
authorid没有做。我试一下。看。
or
SELECT t.tid, t.author, t.authorid, t.subject, t.lastpost, t.views, t.replies, m.gender, f.fid, f.name FROM vs.threads t
inner join vs.members m
on m.uid=t.authorid
inner join vs.forums f
on f.fid=t.fid
ORDER BY t.displayorder
tid mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
fid smallint(6) unsigned NOT NULL DEFAULT '0',
typeid smallint(6) unsigned NOT NULL DEFAULT '0',
author char(15) NOT NULL DEFAULT '',
authorid mediumint(8) unsigned NOT NULL DEFAULT '0',
`subject` char(80) NOT NULL DEFAULT '',
dateline int(10) unsigned NOT NULL DEFAULT '0',
lastpost int(10) unsigned NOT NULL DEFAULT '0',
lastposter char(15) NOT NULL DEFAULT '',
lastposterid mediumint(8) unsigned NOT NULL DEFAULT '0',
views int(10) unsigned NOT NULL DEFAULT '0',
replies mediumint(8) unsigned NOT NULL DEFAULT '0',
displayorder tinyint(1) NOT NULL DEFAULT '0',
digest tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (tid),
KEY authorid (authorid),
KEY fid (fid),
KEY digest (digest),
KEY displayorder (fid,displayorder,lastpost),
KEY typeid (fid,typeid,displayorder,lastpost)
) TYPE=MyISAM;两次 inner join 会不会比较慢?