扫码关注官方订阅号
在应用程序中进行数据关联(即执行多次查询,并把结果进行关联)和直接使用关联查询的优劣?这两种方法分别在什么场景下性能好?
人生最曼妙的风景,竟是内心的淡定与从容!
一般来说使用直接关联查询,因为这个并不是想不用就能不用的。如果想减少关联查询提升效率,那么要额外做很多工作,简单来说就是各种缓存。
最简单的例子: Order.StuatsId 关联 OrderStatus.Id为了能显示订单状态方法1: 关联查询方法2: OrderStatus被缓存,同时提供了方法getStatusTitleById的Helper给前台使用,从而避免关联。
所以并发压力不大的项目不用太关注这个,几乎无影响,而并发压力大的项目会专门把这个作为长期任务针对处理。结论:一般来说使用关联查询造成的性能损失对访问者来说是无知觉的,但是一定要避免过多的关联(例如只需要2个表的数据,实际查询的SQL关联了5个表)
光从效率上来看,肯定关联查询效率要更高从代码可读性来看,应该是分开来可读性更高。而且可以重用。
具体怎么选择要看你项目大小。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
一般来说使用直接关联查询,因为这个并不是想不用就能不用的。如果想减少关联查询提升效率,那么要额外做很多工作,简单来说就是各种缓存。
最简单的例子: Order.StuatsId 关联 OrderStatus.Id
为了能显示订单状态
方法1: 关联查询
方法2: OrderStatus被缓存,同时提供了方法getStatusTitleById的Helper给前台使用,从而避免关联。
所以并发压力不大的项目不用太关注这个,几乎无影响,而并发压力大的项目会专门把这个作为长期任务针对处理。
结论:一般来说使用关联查询造成的性能损失对访问者来说是无知觉的,但是一定要避免过多的关联(例如只需要2个表的数据,实际查询的SQL关联了5个表)
光从效率上来看,肯定关联查询效率要更高
从代码可读性来看,应该是分开来可读性更高。而且可以重用。
具体怎么选择要看你项目大小。