对于效率点,如果发生一对一关系,哪个更好,请记住在非索引字段中发生的情况,即个别查询,即
select email from users where name="John";
然后这样做
select * from jobs where email="{first one}";
或者这个单一查询更好:
select j.* from jobs j inner join users u on u.id=j.id where j.email="{email}";
答案 0 :(得分:1)
我将从应用程序的角度回答您正在访问您的MySQL数据库(可能是PHP)。在这种情况下,您的第二个查询是可取的,因为您可以在单个网络调用中获得单个查询所需的数据。另一方面,执行两个单独的查询需要两次完整的数据库往返。这看起来似乎是一个亮点,但请记住,如果您有很多用户并且在整个应用程序中使用此类MySQL礼仪,这可能会降低性能。
至于连接查询的速度,是的,它可能比两个单个查询中的任何一个慢,但如果你调整连接查询,你可能会让它适合你。并且两次往返也可能比稍长的查询更具性能。