最新要闻
- 全省严查!正在进行!
- 每日看点!马斯克大力推荐!特斯拉Cybertruck实车亮相:超级未来感
- 天天消息!马斯克宏图计划公布:储能240TWh 制造投资10万亿美元
- 日本死亡人数是新生儿数量两倍有多可怕:850万“幽灵屋”遍布全国
- 信息:特斯拉下一代电机将不需要任何稀土成分!马斯克挑战全球车企
- 一加Ace 2V 12+256G起步行业罕见:友商还在搞8+128卡价位的版本
- 实时:Redmi Note 12 Pro极速版12+256G到手1999元:开机就是MIUI 14
- 造车新势力2月交付量出炉:理想、蔚来、哪吒破万 零跑压力大
- 【全球速看料】厦门征求意见!过马路玩手机或将罚款50元 你支持吗?
- 世界快看:东风概念飞行汽车外观曝光!“鸥翼门”相当炫酷
- 【当前热闻】2018巴彦淖尔国际马拉松
- 环球焦点!胡明轩:平时杜导叫我和徐杰一起训练 要求我们承担起更多责任
- 环球聚焦:委员建议隔周三休成热搜第一 网友吵翻 专家:很难行得通
- 今日热闻!Model 2明天发?这款15万的特斯拉便宜车:马斯克已经说了17年
- 风语筑(603466):上海风语筑文化科技股份有限公司关于股东权益变动比例超过1%的提示性公告
- 天天观察:希望工程发文感谢《原神》玩家 5天9万多人捐赠240万元
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
读Java性能权威指南(第2版)笔记06_数据库性能JPA&SpringData
(资料图片仅供参考)
1.JPA
1.1.性能直接受底层JDBC驱动性能的影响
1.2.性能提升是通过改变实体类的字节码来实现的
1.2.1.在类加载到JAR文件或者由JVM运行之前增强字节码的方法
1.2.1.1.在编译过程中完成的
1.2.1.2.在实体类编译完成后,它们会被传递给一个特定实现的后置处理器
1.2.1.3.该后置处理器会“增强”字节码,产生一个修改过的类文件,其中包含所需的优化
1.2.2.在类被加载到JVM时动态增强字节码的方法
1.2.2.1.在JVM中运行一个代理,当类被加载时,代理会收到通知并介入类加载的过程,在字节码定义类之前对其进行修改
1.2.2.2.代理是在应用程序的命令行上指定的
2.优化JPA写
2.1.写入更少的字段
2.2.可以从限制数据库的写入调用数量中获益
2.3.语句池可以在JPA层面或JDBC层面实现
2.3.1.应该首先尝试在JDBC层面实现
2.3.2.如果JDBC驱动能够提供语句池,通常最好在驱动中启用语句池,并将从JPA的配置中删除语句池配置
2.4.JDBC驱动不能自动实现语句批处理
2.4.1.设置size属性
2.4.2.JPA的批量更新可以用声明的方式在persistence.xml文件中完成
2.4.3.应用程序可以定期调用实体管理器的flush()方法,这个调用会立即执行所有需要批量处理的语句
3.优化JPA读
3.1.读取更少的数据
3.1.1.因为有些数据不需要
3.1.2.目的
3.1.2.1.在检索实体时可以让SQL更快
3.1.2.2.可以节省大量内存,从而减少了GC压力
3.1.3.指定需要延迟加载的相关字段
3.1.3.1.当一个实体被检索时,带有延迟加载注解的字段将被排除在用于加载数据的SQL之外
3.1.3.2.对于基本类型的简单列,很少使用
3.1.3.3.基于BLOB或基于CLOB的大型对象考虑使用
3.1.3.4.延迟加载注解最终只是对JPA实现的建议
3.1.3.4.1.JPA实现可以自由决定数据库是否立即提供该数据
3.2.一次读取更多的数据
3.2.1.因为将来肯定需要这些数据
3.3.提取组(fetch group)
3.3.1.非标准JPA
3.3.2.可以将某些延迟加载字段指定为一组,在其中一个字段被访问时,整个组都会被加载
3.3.3.多个独立的字段组,每个组会在需要时被加载
3.4.立即提取(eager fetching)
3.4.1.当获取一个实体时,其他相关实体的数据也应该被返回
3.5.在查询中使用JOIN
3.5.1.特殊的@JoinFetch注解,它也可以用于连接提取关系
3.5.2.选择立即加载关系时,可以使用命名查询来发出一条使用JOIN的SQL语句
3.6.处理结果集
3.6.1.一次获取所有结果
3.6.2.在程序遍历查询结果时一次获取一个结果
3.6.3.一次获取几个结果
3.7.命名查询的速度更快
3.7.1.JPA实现几乎总是使用带有绑定参数的预处理语句,同时利用语句缓存池
4.JPA缓存
4.1.提供一个中间层来缓存后端数据库返回的数据
4.1.1.缓存频繁使用的数据可以大幅缩短客户端的响应时间
4.1.2.JPA缓存只对通过主键访问的实体进行操作
4.2.一级缓存
4.2.1.L1缓存
4.2.2.实体管理器中的本地缓存
4.2.3.几乎不需要优化
4.2.4.在所有JPA实现中都是开启的
4.3.二级缓存
4.3.1.L2缓存
4.3.2.全局缓存
4.3.3.在所有的实体管理器之间共享的
4.3.4.不是所有的JPA实现都会默认开启它
4.3.5.L2缓存会自动为应用程序缓存实体
4.3.6.当有很大的JPA L2缓存时,堆的优化对于良好的性能就相当重要了
4.4.通过查询检索到的数据不会保存在L2缓存中
4.4.1.即使JPA实现支持查询缓存,实体本身也不会存储在L2缓存中,也不能在随后调用find()方法时被返回
4.4.2.只有在每次执行查询时,查询中使用的参数完全相同的情况下,查询缓存才会起作用
4.4.3.除非正在使用的JPA实现支持查询缓存,否则使用JOIN查询经常会对性能造成负面影响,因为它没有利用L2缓存
4.4.4.从长远来看,避免查询是有益的
4.5.当所有的数据都被使用时,立即加载和延迟加载的性能基本相同
4.6.当关系数据没有被实际使用时,延迟加载会节省一些时间
4.6.1.特别是在循环第一次执行时
4.6.2.循环的后续执行并不会节省时间
4.6.2.1.在这些后续的迭代中,立即加载的代码并没有重新加载数据,它是从L2缓存中查找的数据
4.7.如果实体都不是通过查询检索到的,那么在初始的预热期之后,通过L2缓存可以访问所有的实体
4.7.1.即使SQL语句返回多行数据,JPA仍然能够缓存实体,这和执行查询不同
4.7.2.如果通过遍历实体来预热L2缓存,不要单独遍历相关实体,通过访问关系来遍历更简单
4.8.如果缓存消耗了太多内存,就会给GC造成压力
4.8.1.设置缓存大小的选项
4.8.1.1.针对全局的
4.8.1.2.针对每个实体的
4.8.2.另一种可用方法是让L2缓存使用软引用或/和弱引用
4.8.2.1.比为每个实体找到最佳大小要容易一些
4.8.2.2.弱引用在任何GC操作中都会被回收
5.Spring Data
5.1.关系数据库和NoSQL数据库的数据库访问模块集合
6.Spring Data JDBC
6.1.JPA的一个简单替代方案
6.2.提供了类似于JPA的实体映射
6.3.没有缓存、延迟加载或脏实体跟踪等功
7.Spring Data JPA
7.1.标准JPA的包装器
7.2.减少开发人员需要编写的模板代码量
7.2.1.提高开发人员的效率
7.2.2.并不能真正影响应用程序性能
8.Spring Data for NoSQL
8.1.各种NoSQL和类NoSQL技术的连接器
8.2.MongoDB
8.3.Cassandra
8.4.Couchbase
8.5.Redis
9.Spring Data R2DBC
9.1.允许对Postgres、H2和Microsoft SQL Server数据库进行异步访问
9.2.遵循典型的Spring Data编程模型
9.3.不是直接使用JDBC
9.4.和Spring Data JDBC类似
9.5.通过仓库中的简单实体进行访问
9.6.没有缓存、延迟加载和JPA的其他功能
-
读Java性能权威指南(第2版)笔记06_数据库性能JPA&SpringData
1 & 160;JPA1 1 & 160;性能直接受底层JDBC驱动性能的影响1 2 & 160;性能提升是通过改变实体类的...
来源: 读Java性能权威指南(第2版)笔记06_数据库性能JPA&SpringData
全省严查!正在进行!
每日看点!马斯克大力推荐!特斯拉Cybertruck实车亮相:超级未来感
天天消息!马斯克宏图计划公布:储能240TWh 制造投资10万亿美元
日本死亡人数是新生儿数量两倍有多可怕:850万“幽灵屋”遍布全国
信息:特斯拉下一代电机将不需要任何稀土成分!马斯克挑战全球车企
环球新动态:Spark系列 - (5) Spark Shuffle
热消息:Fireasy3 揭秘 -- 万物伊始(依赖注入与服务发现)
全球信息:英语四级阅读技巧
一加Ace 2V 12+256G起步行业罕见:友商还在搞8+128卡价位的版本
实时:Redmi Note 12 Pro极速版12+256G到手1999元:开机就是MIUI 14
造车新势力2月交付量出炉:理想、蔚来、哪吒破万 零跑压力大
【全球速看料】厦门征求意见!过马路玩手机或将罚款50元 你支持吗?
世界快看:东风概念飞行汽车外观曝光!“鸥翼门”相当炫酷
【当前热闻】2018巴彦淖尔国际马拉松
环球焦点!胡明轩:平时杜导叫我和徐杰一起训练 要求我们承担起更多责任
世界快讯:makefile
基于alpine基础镜像构建jdk镜像以及tomcat镜像及业务构建
Linux极简入门系列(六):其它补充
CSS全局关键字
环球聚焦:委员建议隔周三休成热搜第一 网友吵翻 专家:很难行得通
今日热闻!Model 2明天发?这款15万的特斯拉便宜车:马斯克已经说了17年
环球新消息丨LOJ 3276 JOISC 2020 Day2 遗迹 题解 (计数DP)
环球快资讯:MySQL学习笔记-多表查询(上)
当前视讯!量化交易基础 - 011 - 样本外检验
风语筑(603466):上海风语筑文化科技股份有限公司关于股东权益变动比例超过1%的提示性公告
天天观察:希望工程发文感谢《原神》玩家 5天9万多人捐赠240万元
世界聚焦:“刺客”又来了!网友称买到1600元一斤话梅:每颗至少20元
“窄边教科书”上新!戴尔XPS15 9530发布:13代酷睿+RTX 40配8TB SSD
环球微动态丨孟菲斯动物园发大熊猫丫丫新动态 网友:尽快回国!
曝苹果屏下Face ID技术有缺憾:2026年才会趋于完美
C++ STL学习笔记-C++ STL基础
焦点讯息:4-Ribbon负载均衡
信息:可取代eSIM:更完美的iSIM卡来了
二月浏览器大战结果出炉:微软Edge用户数不升反降
头条:《王者荣耀》干将莫邪画中仙皮肤公布:中国古风莫邪绝美
环球微头条丨k8s之list-watch机制、节点调度以及亲和性
全球速讯:记录--虚拟滚动探索与封装
天天百事通!(数据库系统概论|王珊)第七章数据库设计-第四节:逻辑结构设计
焦点热议:Cesium 几何体贴模型 sampleHeight(二十二)
环球滚动:苏富比春拍上海预展即将开展,近150件藏品由谁保驾护航?
全球即时看!蔚来2022年财报公布:全年营收492亿元 同比大涨36%
天天资讯:建议元宵节放假1天:提升人民幸福指数
环球通讯!超19万辆!比亚迪2月新能源销量公布:暴打新势力全家
全球微头条丨2023五一档电影增至五部!哪部对你吸引力更大?
热点!Cesium Transform(二十)
世界速讯:第124篇: 期约Promise
怎么登录新浪微博网页版_如何登陆新浪微博
环球快报:刹车变硬踩不动遭车主集体投诉 铃木召回超7.8万辆汽车
【独家】好利来创始人之子回应开劳斯莱斯摆摊:没想博眼球
天天快播:AI小姐姐比真人还好看? N卡又抓到风口:8GB显存稳定绘图 首选RTX30/40系
春丽今天55岁了!网友:Coser我永远只服成龙大哥
速讯:URLDNS链分析
认识数据标签
每日速递:Python识别图形验证码实战项目
全球播报:记一次CPU占用持续上升问题排查(Nacos动态路由引起)
iOS应用发布ITMS-90704错误解决
荣耀“青海湖技术”揭晓:荣耀Magic5系列全球首发硅碳负极技术
国内专属!新款国产特斯拉Model Y升级悬架:终于不颠了
天天热门:功耗开放470W!影驰名人堂RTX 4080真是生猛
每日热讯!又一游戏成功“入奥”:育碧《舞力全开》入选2023年奥林匹克电子竞技项目
天天头条:女子幼儿园收童子尿煮鸡蛋 吃着香是浙江当地非遗:网友直呼酸爽
今日热闻!中国通才教育:已针对首次公开发售相关指控开展独立调查,将继续停牌
全球百事通!为什么95%的Java程序员人,都是用不好Synchronized?
每日时讯!Python教程:类的派生
你有“ChatGPT综合征”吗:想搞钱,或是失业焦虑?
Python教程:类的继承,什么是继承
加点广告怎么了 爱奇艺新专利可在弹幕中显示广告
环球动态:狂飙8000MHz!朗科Z RGB DDR5-8000 16GB电镀银内存图赏
每日短讯:1:1复刻仿生人手 现实版《西部世界》公司众筹开启
全球头条:5G是高铁 6G就是飞机!工信部:全面推进6G技术研发
焦点热文:公司丢货要求全体员工均摊1万赔款:新员工拒赔反被怀疑偷东西
天天观察:如何在Ubuntu上安装Nextcloud(适用于树莓派上的Ubuntu)
每日播报!Pod 进阶
每日快看:Zabbix“专家坐诊”第183期问答汇总
Spring中Bean的加载方式~
什么是Markdown
当前报道:纬德信息(688171)3月1日主力资金净买入105.72万元
旅俄大熊猫画风突变体重狂飙40公斤:摸爬滚打样样精通
百事通!特斯拉Model 2被曝成本大降37% 比丰田卡罗拉还低
世界短讯!打赢了!科比坠机照片泄露案其遗孀获赔2885万美元
天天热头条丨惊险一幕:女子用火车站自动扶梯运行李 把下面男子砸骨折
【全球速看料】玩游戏需自备爆米花:《最终幻想16》主线过场动画超11小时
当前快看:1000亿数据、30W级qps如何架构?来一个天花板案例
3-Eureka注册中心
天天精选!【验证码逆向专栏】某验三代、四代一键通过模式逆向分析
当前信息:索泰RTX 4090月白深度测试:真孤独求败!A卡没得玩了
网友晒视频广州一特斯拉在停车场连撞多车 司机下车就跑:又踩错了吗
当前看点!设计时速100公里!上海苏州互通地铁今起试跑:苏州坐地铁直达
环球资讯:韦达定理
全球播报:轻松玩转Makefile | 基础用法
医院拍CT有位患者叫熊猫 结果竟是真熊猫:网友祝福“国宝”尽快好起来
丰田拆完一辆特斯拉Model Y后被震撼了 高管惊叹:我们远远落后
全球新动态:火爆全网的AI小姐姐模型重新上线 作者:画什么图后果自负
【全球热闻】大厂年薪30万95后女生转行卖快餐:直言脱离公司KPI太快乐了
当前观察:《暗黑破坏神4》玩家打怪时 不会出现天量伤害数值
世界今热点:通用电梯:目前产能在满足履行轨道交通项目合同需求的同时,不会影响公司履行其他客户订单或新接订单的生产需求
环球报道:电脑病毒的介绍与防护_电脑病毒与防护介绍
天天日报丨浅析大促备战过程中出现的fullGc,我们能做什么?
ChunJun 1.16 Release版本即将发布,bug 捉虫活动邀您参与!