这个问题难道不可以咨询吗?我没理解为什么直接closed呢 https://github.com/baomidou/mybatis-plus/issues/6076
Comment From: nieqiurong
如果你想用多租户,处理项目里面所有的sql语句,那就需要sql语法解析,这个是需要时间处理耗时的,你可以注释租户插件自行去跑分对比。
Comment From: Jick-study
我没理解和租户有啥关系啊。。。。
网上人家们对比的时候没说mybatis-plus在多租户的场景下慢。
https://blog.csdn.net/LINgZone2/article/details/131990889
Comment From: totoro52
实现方式都不一样,比较性能有啥用。。plus在拦截器那块用的都是jsqlparser,flex用的SqlProvider ,手段都不一样性能肯定不一样
Comment From: miemieYaho
他没说=他没干吗?你自己打开他的项目看看怎么配置mp的这不难吧
Comment From: huayanYu
https://www.oschina.net/news/293482
Comment From: Jick-study
https://www.oschina.net/news/293482
感谢回复~
Comment From: Jick-study
他没说=他没干吗?你自己打开他的项目看看怎么配置mp的这不难吧
水平菜看不懂源码啥的。做为CRUD开发我就是想问下性能差距不可以?
Comment From: miemieYaho
你是又没脑子人又懒,几行代码你都不愿意去翻还嘴硬,做什么开发,工地搬砖最适合你了
Comment From: VampireAchao
1. SQL解析和动态SQL生成
JSQParser是一种强大的SQL解析器,能够将SQL语句解析成可操作的抽象语法树(AST)。在MyBatis Plus中,使用JSQParser可以实现以下操作: - 动态生成和修改SQL语句:通过解析SQL,可以动态生成复杂的查询语句,适应不同的查询条件。 - SQL语句的验证和优化:在生成SQL语句之前进行验证和优化,确保生成的SQL是有效且高效的。
2. 多租户和数据权限控制
在多租户系统或需要数据权限控制的系统中,JSQParser尤为重要: - 自动添加租户ID或数据权限条件:解析SQL后,自动在查询中添加租户ID或数据权限相关的条件,确保数据隔离和安全。 - 灵活的权限策略实现:根据用户权限动态调整SQL语句,实现灵活的权限控制策略。
3. 提升代码可维护性
使用JSQParser可以使SQL处理逻辑更加清晰和规范: - 减少手写SQL的复杂度:通过程序化方式生成和修改SQL,减少手写SQL的错误和维护成本。 - 增强代码的可读性和可维护性:将SQL解析和生成的逻辑与业务逻辑分离,使代码结构更清晰,易于维护和扩展。
性能消耗及其合理性
虽然使用JSQParser会带来一定的性能消耗,但这些消耗在大多数应用场景下是可以接受的: - 性能消耗的衡量:解析和生成SQL的操作只在SQL生成阶段进行,对整体系统运行性能影响较小。 - 收益和权衡:使用JSQParser获得的灵活性和功能性(如动态SQL生成、多租户支持、数据权限控制等)远远超过了性能消耗的成本。
ORM选择的综合考量
通常,性能并不是选择ORM的唯一指标,以下方面也需综合考虑:
-
功能完善 MyBatis Plus不仅提供基本的CRUD操作,还增强了许多高级特性,如自动填充、逻辑删除、数据权限控制等,提高开发效率。
-
社区活跃 MyBatis Plus拥有活跃的开发者社区,定期发布更新和修复,提供详尽的文档和教程,开发者遇到问题时能够迅速找到解决方案,并能享受到最新的功能和改进。
-
企业认可和背书 MyBatis Plus已被众多企业采用,获得广泛认可。这些企业的背书不仅是对其功能和性能的认可,也是对其稳定性和可靠性的肯定。
-
生态系统 MyBatis Plus拥有庞大的生态系统,提供许多插件和扩展,便于与各种工具和库集成,支持多种数据库,具有良好的跨平台兼容性。
-
易用性和学习曲线 MyBatis Plus提供简单易用的API,降低学习曲线。对于熟悉MyBatis的开发者来说,迁移到MyBatis Plus几乎没有学习成本,其自动化和简化配置进一步减少了开发和维护的复杂度,使开发者可以专注于业务逻辑的实现。
结论
尽管在MyBatis Plus中使用JSQParser会带来一定的性能消耗,但其在SQL解析和生成、多租户支持、数据权限控制、代码可维护性等方面的优势,使这些消耗是值得的。考虑到MyBatis Plus在功能完善性、社区活跃度、企业认可度、生态系统和易用性等方面的综合优势,选择MyBatis Plus能够大幅提高开发效率和代码质量,为企业级应用开发提供坚实的基础。
Comment From: Jick-study
你是又没脑子人又懒,几行代码你都不愿意去翻还嘴硬,做什么开发,工地搬砖最适合你了
呵呵 就你这样连搬砖都不配,装什么呢?看懂几行代码你觉得你就又行了?在这找啥存在感呢?乖乖闭嘴写你的