单表多sql查询相比于多表联查的优点
优点:
- 缓存效率更高。许多应用程序可以方便的缓存单表查询的结果,例如,第一条sql根据id=5查询得到结果,第二条sql是根据id in (5,3)时,第二条sql只需要查询id=3的结果即可;
- 将联查的sql拆分多条sql单表查询时,执行单个查询可以减少“锁”的竞争;
- 在应用层做关联,可以更容易的做到高性能和可扩展性;
- 查询的本身效率也可能会有所提升,例如,使用in()代替关联查询,可以让mysql按照id的顺序查询,这可能比随机的关联要更高效;
- 可以减少冗余记录的查询。在应用层做关联查询,意味着对于某条记录应用只需要查询一次,而在数据库做关联查询,则可能需要重复的访问一部分数据,从这一点来看,单表多sql查询会减少网络和内存的消耗;
- 在应用层关联相当于在应用层实现了哈希关联,而不是使用mysql的嵌套循环关联。某些场景哈希关联的要高很多