文件名称:数据量在千万级别-tdt 1055-2019 第三次全国国土调查技术规程
文件大小:2.25MB
文件格式:PDF
更新时间:2024-06-28 02:34:46
选型报告
(1) 数据量在千万级别 (2)3000并发下,简单查询5秒内,复杂查询10秒内. (3)开发效率高,易上手。 前两个是硬性条件,最后一个是服务于开发人员,对于千万级数据量是否 Hibernate能够满足我们的性能需求,我一直渴望能找到相关的数据,但是没有 具体的数据支撑,但是网上的经验,很多的系统当数据量达到千万级以上的时 候,把Hibernate换成SpringJDBC或者Ibatis或者纯JDBC的方式,可见 Hibernate会成为将来性能的一个瓶颈,下面列举几种场景能够体现Hibernate 的性能比较低: 比如说有一个表,这个表有几个或者几十个字段,我需要更新其中的 一个字段,iBatis 很简单,执行一个sql UPDATE TABLE_A SET column_1=#column_1# WHERE id=#id# 但是用 Hibernate 的话就比 较麻烦了,缺省的情况下 hibernate 会更新所有字段 需要列出一个表的部分内容,用 iBatis 的时候,这里面的好处是可 以少从数据库读很多数据,节省流量SELECT ID, NAME FROM TABLE_WITH_A_LOT_OF_COLUMN WHERE ...一般情况下Hibernate 会把 所有的字段都选出来。比如说有一个上面表有8个字段,其中有一两 个比较大的字段,varchar(255)/text。上面的场景中我为什么要把 他们 也选出来呢?用hibernate 的话,你又不能把这两个不需要的 字段设置为lazy load,因为还有很多地方需要一次把整个 domain object 加载出来。这个时候就能显现出ibatis 的好处了。如果我需 要更新一条记录(一个对象),如果使用 hibernate,需要现把对象 select 出来,然后再做 update。这对数据库来说就是两条sql。而 iBatis只需要一条update的sql就可以了。减少一次与数据库的交 互,对于性能的提升是非常重要。 � 所以比较起来,更倾向于使用Mybatis,将来可以进行细粒度的优化,一 般系统性能 的瓶颈都在数据库上。所以这一点是 iBatis 非常重要的一个优 势。 6