联合多表查询数据时,写多个sql分开查询好,还是写一个sql做联合查询好呢
回答
强烈建议分开
复杂查询单次查询的时间比较长,分开查询每次查询很快但是总查询时间比较长.分开查询意味着每次数据库锁住的时间很短,可以在多个请求间快速切换,这个整个系统的吞吐量就会大,复杂查询很容易变成严重的排队. 当然,这说法仅仅对mysql几个基本引擎有效,对于那些商业引擎,有快照,隔离之类的功能,这些影响基本可以忽略.不过我认为,代码最重要的不是效率,不是设计,而是能让人看懂,短小的语句显然比复杂嵌套语句容易理解,特别是让别人理解,所以我建议尽可能不要用复杂查询,不要用那些在查询语句中无法体现的功能,比如外键约束,存储过程之类的东西
1.有没有缓存,如果有缓存,建议所有的查询全部分开;
2.没有缓存,联合查询不复杂,就联合查询;
3.没有缓存,联合查询很复杂,建议把复杂的查询分开。
简单的数据量少的话联合查询,复杂的数据量大的最好分开查询。
这个还得看表的数量及场景的吧。
看使用场景决定哪种比较好
如果数据量不是很大连接查询到不失一个方便快捷的方案.
但是如果数据一旦多了,而且又是表级别的锁的话,会很容易导致系统崩掉.
分开会比较好