4つの異なるテーブルの情報を取得し、それらをすべて結合するクエリがあります。テーブルは「ギルド」、「ギルド・メンバー」、「フラット」、「ユーザー」です。私の質問にはうまくいきますが、私はそれの効率性とそれがより速くできるかどうか疑問に思っています。MySQLクエリの最適化(COUNTとJOINを使用)
私はそれがうまく動作し、スピードが速いのですが、guilds_membershipsの中にはデータがあまりありません。それは、COUNTED()です。私が使用しているクエリを以下に示します。私は、まあ
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