我有3张桌子
user1[user1_id,name],
user2[user2_id, user1_id],
user3[user3_id,user1_id]
我的第一个问题是
select a.user1_id, b.user2_id, c.user3_id from user1 a
left join user2 b on b.user1_id = a.user1_id
left join user3 c on c.user1_id = a.user1_id
my second query is
select a.user1_id, b.user1_id from user2 a
left join user3 b on b.user1_id = a.user1_id
我使用了这个全部查询。
我的问题是如何优化我的查询或优化查询时间,因为当我使用这两个查询时,查询时间是15.767s,返回值为18592。有人可以更正我的查询,或者是表格设计。
答案 0 :(得分:1)
基本上你应该
a)在列上添加索引
CREATE INDEX IDX_USER1_USERID ON USER1(USER_ID);
CREATE INDEX IDX_USER2_USERID ON USER2(USER_ID);
CREATE INDEX IDX_USER3_USERID ON USER3(USER_ID);
这将大大减少查询时间
b)减少结果集,即传输数据量
用户ID始终相同。不要选择它三次并将传输数据减少到1/3。