mybatis 一对多分页查询 SpringBoot开发使用Mybatis还是Spring Data JPA?

[更新]
·
·
分类:互联网
1471 阅读

SpringBoot开发使用Mybatis还是Spring

SpringBoot开发使用Mybatis还是Spring Data JPA?

Data JPA?

技术选型需要结合多方面来考虑,这里我试着列举一些方面,仅供参考。
是否需要兼容多种数据库。如果需要兼容,优先考虑spring data jpa。因为mybatis想要兼容数据库需要写多套sql脚本,工作量很大。
开发团队的经验。开发团队成员过往开发中,对哪个orm框架更熟悉。一般来说,mybatis上手比较容易,jpa/hibernate虽然不用写sql语句,但是配置复杂,各个状态转换难以理解,出现错误也难以调试,对开发人员能力要求较高。
性能考虑。作为orm框架,jpa/hibernate需要把数据库行完全映射成java对象,占用内存较大,特别是进行关键查询的情况下。当然,这可以通过懒加载、查询指定字段等方式优化,但是和上面一样,对人员要求较高。另外hibernate生成的sql语句可读性也较差,不利于检查问题。
其他杂项考虑。jpa对逻辑删除支持较差 mybatis编写ResultMap过于繁琐等等。
总结一下,spring data jpa开发效率高,代码量少,但是代价是学习成本和优化成本比较高。mybatis代码量大一些,不好兼容多种数据库,但是手动编写sql相对灵活,上手简单。

大数据十亿级别以上数据既可查询详单又可汇总技术方案有哪些?

在查询详单和汇总方面目前最火的技术非列式数据库clickhouse莫属了。单台机器就可以轻松支持亿级别的数据分页查询,即详单数据,而且对亿级别的groupby的速度也非常快,即汇总。目前已经有公司使用了单台clickhouse查询百亿级别的详单数据了。而且clickhouse默认支持绝大部分的sql,并且可以和mybatis和jpa等框架整合。当单台的查询性能达到瓶颈,clickhouse还可以很轻松就能搭建出集群,从而大大扩展了整个系统的查询性能。
dbeaver是支持clickhouse查询的客户端工具,其和mysql的客户端工具navicat类似。因此整个clickhouse的查询解决方案和我们平时使用的mysql没有太大的差别,基本上是无缝衔接的。整个clickhouse的技术可以参考亿级数据秒级查询数据仓库clickhouse安装 ,亿级数据秒查数据仓库clickhouse基本操作及其集群表