美文网首页
关于持久层和数据库一些自己的想法

关于持久层和数据库一些自己的想法

作者: hey_sometimes | 来源:发表于2017-10-17 14:26 被阅读0次

最近遇到一些让自己纠结的问题,如持久层到底是选择mybatis还是spring-data-jpa。就我个人而言,mybatis是我熟悉且喜欢的,但是写mapper里面的映射着实让人心累,虽然有gengrator这种自动生成mapper的东西,但是生成的代码毕竟不是自己写的代码,难以维护,所以现在更多的时候我宁愿手写这些代码。spring-data-jpa的确是个很好的东西,帮开发人员减轻了很多负担,但是越是封装得好,开发人员的自由度就越低,虽然也提供了@Query和Specification,但是也只能做极少的事情,在mybatis的xml里面写灵活动态sql的快感是在这里一点都体会不到的。

再一点就是关于数据库的,之前一直是在用mysql,因为项目的原因,也一直是在用innodb引擎。虽然myisam在查询和添加上有很大的优势,但是在事务上的不支持,也使我不得不放弃这个引擎。再然后就是tokudb了,的确,tokudb有很多特别吸引人的有点,比如高压缩比,高insert性能,秒级或瞬间的增删字段,丰富的索引类型等等。但是也不要被这些优势迷昏了眼,目前tokudb的资料还是很少的,踩到坑里面了大概只能自救了吧!再说回innodb,这是mysql默认的引擎,支持事务,在索引的情况下查询,排序都是很快的,删除和更新肯定是比起tokudb慢很多的,这就要看项目的业务场景了。在数据量稍微大点的时候(百万级别),innodb在没有sql优化的时候局限就开始显现出来,mysql的优化方式很多,大家可以根据自己的情况进行针对性的优化,这里就不细讲了

说完mysql,其实也考虑过nosql。个人觉得还是不要盲目跟风,在数据量不大的情况下,mysql是完全能应对的。因为nosql对连接和事务的不支持,在项目上线且拥有百万级的数据量的时候,这个问题就特别明显了。所以对于数据库的选择还是以团队为准。

相关文章

  • 关于持久层和数据库一些自己的想法

    最近遇到一些让自己纠结的问题,如持久层到底是选择mybatis还是spring-data-jpa。就我个人而言,m...

  • ssm介绍

    持久层:DAO层(mapper) DAO层:DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装...

  • 工程结构

    三大层: DAO层: DAO层:DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,DAO...

  • spring boot 整合持久层jdbc

    Spring boot 整合持久层 持久层是Java EE中访问数据库的核心操作,Spring boot中对常见的...

  • 011.MVC的约定补充说明

    三层架构:即表现层、业务层、持久层。① 持久层:采用DAO模式,建立实体类和数据库表映射(ORM映射)。也就是哪个...

  • 13_mybatis总结

    关于mybatis总结 mybatis是一个持久层框架,跟数据库打交道的,比hibernate火 1.mybati...

  • (更新至2016.10.14r)SQL语法知识巩固

    2016.10.14r 1.什么是数据持久层?持久层,又叫数据访问层。是和数据库直接打交道的层,所有增删改查的操作...

  • DAO层,Service层,Controller层、View层详

    1、Dao层 Dao层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,Dao层的设计首先是设计...

  • 项目中DAO层、Service层、Controller层、Vie

    DAO层:DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,DAO层的设计首先是设计DA...

  • MVC的dao层、service层和controller层

    1、dao层dao层主要做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,dao层的设计首先是设计da...

网友评论

      本文标题:关于持久层和数据库一些自己的想法

      本文链接:https://www.haomeiwen.com/subject/ehxduxtx.html