问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

hibernate.cfg.xml里的hibernate.jdbc.fetch_size 和hibernate.jdbc.batch_size配置是干什么用的?

发布网友 发布时间:2022-04-09 11:37

我来回答

1个回答

热心网友 时间:2022-04-09 13:07

hibernate.jdbc.fetch_size 50
hibernate.jdbc.batch_size 25
这两个选项非常非常非常重要!!!将严重影响Hibernate的CRUD性能!
代码:
C = create, R = read, U = update, D = delete
Fetch Size 是设定JDBC的Statement读取数据的时候每次从数据库中取出的记录条数。例如一次查询1万条记录,对于Oracle的JDBC驱动来说,是不会 1次性把1万条取出来的,而只会取出Fetch Size条数,当纪录集遍历完了这些记录以后,再去数据库取Fetch Size条数据。因此大大节省了无谓的内存消耗。当然Fetch Size设的越大,读数据库的次数越少,速度越快;Fetch Size越小,读数据库的次数越多,速度越慢。这有点像平时我们写程序写硬盘文件一样,设立一个Buffer,每次写入Buffer,等Buffer满了以后,一次写入硬盘,道理相同。
Oracle数据库的JDBC驱动默认的Fetch Size=10,是一个非常保守的设定,根据我的测试,当Fetch Size=50的时候,性能会提升1倍之多,当Fetch Size=100,性能还能继续提升20%,Fetch Size继续增大,性能提升的就不显著了。因此我建议使用Oracle的一定要将Fetch Size设到50。
不过并不是所有的数据库都支持Fetch Size特性,例如MySQL就不支持。MySQL就像我上面说的那种最坏的情况,他总是一下就把1万条记录完全取出来,内存消耗会非常非常惊人!这个情况就没有什么好办法了
Batch Size是设定对数据库进行批量删除,批量更新和批量插入的时候的批次大小,有点相当于设置Buffer缓冲区大小的意思。Batch Size越大,批量操作的向数据库发送sql的次数越少,速度就越快。我做的一个测试结果是当Batch Size=0的时候,使用Hibernate对Oracle数据库删除1万条记录需要25秒,Batch Size = 50的时候,删除仅仅需要5秒!!!可见有多么大的性能提升!很多人做Hibernate和JDBC的插入性能测试会奇怪的发现Hibernate速度至少是JDBC的两倍,就是因为 Hibernate使用了Batch Insert,而他们写的JDBC没有使用Batch的缘故。以我的经验来看,Oracle数据库 Batch Size = 30 的时候比较合适,50也不错,性能会继续提升,50以上,性能提升的非常微弱,反而消耗内存更加多,就没有必要了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 黑客攻击报案有用吗 现在什么漫画网站比较好?哪里能看citrus? 哪个漫画APP能够看citrus? 有哪些比较知名的漫画网站?哪里能看citrus? 哪一个漫画网站比较好?能够看citrus吗? citrus好看吗?哪个漫画APP可以看? 可以看漫画citrus的漫画APP有哪些? 哪个漫画APP是citrus正版授权的? P55主板H55主板支持单根容量是8GB的内存条吗 技嘉H55M-D2H 最大内存问题... 英特尔 To be filled by O.E.M. h55能识别多少内存 mh55芯片组可不可以支持1600MHz的ddr3内存? 笔记本的H55M主板最大支持多少G的内存? p7h55用什么内存 微星h55m-e21支持什么内存条 h55主板支持8g内存吗 精英 H55H-CM2(英特尔 H55 芯片组) 能支持多大内存??? 求高手 告知 OEM主板,H55芯片组,可以加装多大的内存 intel(r) H55 支持多大内存 技嘉h55m-s2支持多大内存 捷波h55主板可以支持多大的内存?? 有哪些可以看漫画citrus的网站? citrus哪个漫画APP可以看? 哪个app看漫画最全?能看citrus吗? 有什么漫画app可以看citrus? citrus各位看了吗?都是在哪里看的呀? 请问有免费看漫画的网站吗?哪里可以看到citrus? 哪里有免费又全的漫画网站?想看citrus citrus在哪个漫画APP上可以看? 看漫画用什么APP最好?哪个可以看citrus? 漫画最全的网站是哪个啊?哪里能看citrus? 想看citrus,哪个漫画APP可以看? 鱿鱼籽怎么做如何做好吃 为什么iphone11r比iphone11便宜这么多 iphone11r值得买吗 cpu 至强x5570和a m d4x860k 哪个好 8.5X11R的尺寸是A4还是16开? 垃圾处理器哪个好 8.5X11R的尺寸是A4还是16开 闽南语歌词人生中注定的代志是什么歌 请问11R照片的尺寸是多少?