MYSQL一对一关系连接比个人更好[重复]
Posted
技术标签:
【中文标题】MYSQL一对一关系连接比个人更好[重复]【英文标题】:MYSQL one to one relation join better than individual [duplicate] 【发布时间】:2018-08-31 21:18:54 【问题描述】:为了提高效率,如果发生一对一关系,哪个更好,请记住这一点,在非索引字段中发生,即单个查询,即
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";
【问题讨论】:
first one
应该代表什么?查询的效率取决于很多事情。这真的取决于。
@TimBiegeleisen,我认为他的意思是第一个查询的结果。问题需要修改!
@TimBiegeleisen,“then”和“than”经常被混淆,但他的意思确实是“then”。比较是在做前两个,或者只是第三个。 (我倾向于单查询,除非两者之间存在其他逻辑问题。)
@MarcL。我现在感觉很糟糕,因为我完全错过了。
我看不出这是个问题。
【参考方案1】:
我将从正在访问您的 mysql 数据库(可能是 php)的应用程序的角度来回答。在这种情况下,您的第二个查询要好得多,因为您可以在单个查询中获得所需的数据,在单个网络调用中。另一方面,执行两个单独的查询需要对数据库进行两次完整的往返。这似乎是一个亮点,但请记住,如果您有很多用户并且您在整个应用程序中使用这种 MySQL 礼仪,这可能会降低性能。
至于连接查询的速度,是的,它可能会比两个单个查询中的任何一个都慢,但是如果您调整连接查询,您可能会使其适合您。与稍长的查询相比,两次往返可能对性能的影响更大。
【讨论】:
以上是关于MYSQL一对一关系连接比个人更好[重复]的主要内容,如果未能解决你的问题,请参考以下文章
MySQL 基础 -- 多表关系(一对一1对多(多对一)多对多)多表查询(内连接外连接自连接子查询(嵌套查询)联合查询 union)笛卡儿积