处理N+1问题,更多地与业务模型以及业务上下文有关,从DDD的角度考虑这个问题,N+1问题好像不应该存在,这也说明了lazy-load对于DDD而言可能是一个坏味道。但是,解决N+1问题本身也相对比较容易,只要对相应的ORM框架有足够深入的理解以及借用SQL Tuning工具,解决大部分的性能问题。
针对报表的性能问题,仅仅依靠集中式的高性能的单数据库服务器,通过操作表进行数据读取,或者进行连接操作,或者进行映射操作,并不能满足用户对于性能的需求。尤其当有报表中存在业务逻辑时,比如用户权限控制,将使得出报表本身也变的非常复杂。因而,NoSQL以及分片和数据复制可能在这方面有更为出色的表现。
性能优化展望
性能问题是一个复杂的领域问题,解决性能问题关键是找出性能瓶颈,但是如果永远只能“东窗事发”之后进行补救还远远不够,因而在解决系统性能的道路上,需要在系统开发时就给予足够的重视,甚至在架构决策时,也应该考虑性能的需求。在今天分布式处理以及大数据技术飞速发展的大背景下,对于性能的解决,我们也许还有更多的选择。
本文来源:不详 作者:佚名