我有一個查詢從四個不同的表中獲取信息,並將它們全部加入。這些表格是'公會','行會會員','公寓'和'用戶'。查詢我有工作,但我只是想知道它的效率,如果它可以做得更快。MySQL查詢優化(使用COUNT和JOIN)
我的意思是,目前它工作正常,速度很快,但guilds_memberships內部沒有太多數據,它是COUNTED()'d。我正在使用的查詢如下所示。 (總是會有至少1記錄guilds_memberships,單位和用戶內部的每個行會順便說一句,如果要與所有優化(無理由來檢查空值)幫助)
SELECT g.id, g.roomid, g.ownerid, g.roomid, g.state, g.name, g.description, g.badgestring, g.primarycolour, g.secondarycolour, g.created, u.username, f.FlatName, COUNT(m.guildid) AS Members
FROM guilds g
INNER JOIN users u ON u.id = g.ownerid
INNER JOIN flats f ON f.FlatID = g.roomid
INNER JOIN guilds_memberships m ON m.guildid = g.id
WHERE g.id =1
LIMIT 0 , 30
感謝您的快速回答。 u.username永遠不會改變,公會不能交換,只能被刪除。因此,在一個公會的存在中,u.username總是相同的,儘管f.FlatName是可以改變的,但你說的很對,它很少會被改變。 我會記住你對使用memcache所說的話。未來可能證明有用。 – DominicEU 2011-12-27 16:52:42