Php MYSQL一对一关系连接优于单个连接

Php MYSQL一对一关系连接优于单个连接,php,mysql,mysql-workbench,Php,Mysql,Mysql Workbench,为了提高效率,如果发生了一对一的关系,哪一种情况更好,请记住这是在非索引字段中发生的,即单个查询 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}"; 我将从一个应用程序的角

为了提高效率,如果发生了一对一的关系,哪一种情况更好,请记住这是在非索引字段中发生的,即单个查询

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}";

我将从一个应用程序的角度回答这个问题,这个应用程序正在访问您的MySQL数据库(可能是PHP)。在这种情况下,您的第二个查询是最好的,因为您可以在一个查询、一个网络调用中获得所需的数据。另一方面,执行两个单独的查询需要对数据库进行两次完整的往返。这似乎是一个亮点,但请记住,如果您有许多用户,并且在整个应用程序中使用这种MySQL礼仪,那么这可能会降低性能


至于连接查询的速度,是的,它可能比两个单一查询中的任何一个都慢,但是如果您调整连接查询,您可能会使它适合您。两次往返可能比一个稍长的查询对性能的影响更大。

什么是
{first one}
?查询的效率取决于许多因素。“这要看情况了。”TimBiegeleisen,我想他指的是第一次查询的结果。这个问题需要编辑@TimBiegeleisen的“then”和“than”经常被混淆,但他的真正意思是“then”。比较就是做前两个,或者只是第三个。(我倾向于单一查询,除非中间有其他逻辑问题。)@MarcL。我现在感觉很糟糕,因为我完全错过了。我不明白这是一个怎样的问题。