最新要闻
- 全球动态:能否破40亿?《流浪地球2》成2月票房冠军 力压《满江红》
- 代表建议春节假期延至9天 取消调休!网友期待
- 天天快看:兼容友商Mesh组网!中兴小方糖路由器今日开售:到手仅99元
- 当前头条:《流浪地球3》何时出?导演郭帆:估计还要等四年
- 环球微速讯:3月24日公测!暴雪《暗黑破坏神4》PC配置要求公布
- 全球今热点:白马非马是什么学派_白马非马是哪家的学说
- 最完美iPhone要来了!消息称iPhone 16 Pro将采用屏下Face ID
- 焦点速看:《白夜追凶2》要来了!优酷独家悬疑剧:前作口碑爆火
- 每日热文:高三女生因百日誓师热血发言表情被网暴 官方回应已心里辅导:女孩未受影响
- 《暗黑破坏神4》Beta测试系统需求
- 世界今热点:TVB小花新剧牺牲大!遭五花大绑太重口味,脚踏两只船遭雪藏半年
- 百度预告3月16日召开发布会:主题围绕文心一言
- 全球信息:“假苍耳”入侵中国!剧毒杀死牛羊、改变土壤、减产60%
- 和AI谈恋爱之后 她忘掉了相恋5年的前男友:结局心酸
- 环球快看:苹果供应商印度工厂突发大火:损失超8300万!一半机器烧毁
- 全球关注:“春天一把豆,胜过吃猪肉”,常吃4豆,高营养高蛋白,增强免疫
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
当前短讯!读Java性能权威指南(第2版)笔记05_数据库性能JDBC
(资料图片)
1.影响数据库应用程序性能最重要的因素
1.1.JDBC驱动
1.1.1.JPA底层使用了JDBC
2.瘦驱动
2.1.为了让Java应用程序的内存占用很小
2.2.依赖数据库服务器来完成更多的处理工作
3.胖驱动
3.1.工作从数据库移至Java应用程序
3.2.进行更多处理、消耗更多内存
4.JDBC连接池
4.1.规则1:让应用程序中的每个线程都有一个连接
4.1.1.在服务器中,在初始时将线程池和连接池设置为相同的大小
4.1.2.在独立应用程序中,可以根据应用程序创建的线程数确定连接池的大小
4.1.3.程序中的任何线程都不必等待可用的数据库连接,并且数据库有足够的资源来处理应用程序施加的负载
4.2.数据库是瓶颈,规则1就不适用了
4.2.1.用连接池限制发送到小规模数据库的工作量
4.2.1.1.应用程序线程可能需要等待一个空闲的连接
4.2.1.2.如果数据库没有被压垮,系统的总吞吐量会最大化
4.3.初始化连接对象的成本很高
4.3.1.在Java中它们经常被池化
4.3.2.在池化对象所占用的内存和池化将触发的额外GC数量之间取得适当的平衡是非常重要的
4.4.优化连接池很重要
4.4.1.减少对垃圾回收器产生不利影响
4.4.2.减少对数据库的性能产生不利影响
5.驱动类型
5.1.1型驱动
5.1.1.ODBC和JDBC之间的桥梁
5.1.1.1.Open Database Connectivity,开放数据库互连
5.1.2.一个程序必须使用ODBC与数据库进行通信,就必须使用
5.1.3.性能一般很差
5.2.3型驱动
5.2.1.纯Java语言编写
5.2.2.为特定的架构设计
5.2.3.有个中间件能提供中间转换过程
5.2.4.中间件可以位于DMZ中,为数据库连接提供额外的安全保障
5.3.2型驱动
5.3.1.使用原生库来访问数据库
5.3.2.允许Java驱动利用多年来在编写C库上所做的工作
5.3.3.数据库供应商必须为驱动提供与平台相关的原生库,Java程序也必须设置环境变量才能使用该库
5.3.4.性能往往非常好
5.4.4型驱动
5.4.1.纯Java驱动
5.4.2.实现了数据库供应商为访问数据库定义的线路协议
5.4.3.性能通常和2型驱动一样好
5.4.4.最容易使用
5.5.推荐使用
6.预处理语句
6.1.不是Statement进行JDBC调用
6.1.1.语句只使用一次
6.1.1.1.最好使用Statement常规语句
6.2.使用PreparedStatement场景
6.2.1.重用
6.2.2.包含很多JDBC调用的批处理程序
6.2.3.在其生命周期中会服务大量请求的服务器
6.3.具有安全性和编程的优势
6.4.会消耗大量的堆空间
6.4.1.避免因池化太多非常大的对象而产生GC问题
7.预处理语句被池化
7.1.重用PreparedStatement对象关键点
7.1.1.JDBC连接池
7.1.2.JDBC驱动配置
7.2.必须在每个连接的基础上进行池化
7.2.1.大多数JDBC驱动和数据框架可以自动地做到这一点
7.2.2.确保JDBC驱动和数据框架只有一个在管理预处理语句池是非常重要的
7.2.3.预期JDBC驱动能够更好地池化语句
7.2.3.1.驱动是针对特定数据库的
7.2.3.2.比更通用的应用程序服务器代码更好
7.3.连接池的大小很重要
7.3.1.会缓存预处理语句
7.3.1.1.语句缓存
7.3.1.2.会消耗大量的堆空间
7.4.管理语句池
7.4.1.ConnectionPoolDataSource类的setMaxStatements()方法可以启用或禁用语句池
7.4.1.1.setMaxStatements()方法的值为0,语句池就会被禁用
7.4.2.配置JDBC驱动来创建和管理语句池
7.4.2.1.查阅该驱动的文档
7.4.2.2.设置驱动,将maxStatements属性设定为所需的值(语句池的大小)
7.4.2.3.额外的设置
7.4.2.3.1.Oracle设置确定是使用隐式语句池还是显式语句池
7.4.2.3.2.MySQL设置另一个属性来启用语句池
7.4.3.在应用程序代码中创建和管理语句池
8.事务
8.1.应用程序对正确性的要求最终决定了事务的处理方式
8.1.1.不要让对性能的渴望超过应用程序的正确性
8.2.性能损失
8.2.1.数据库事务的创建和提交需要时间
8.2.1.1.确保数据库的更改完全存储到磁盘上
8.2.1.2.要确保数据库事务日志是一致的
8.2.2.事务通常会获得一组特定数据的锁
8.3.事务的开始和结束都基于Connection对象的使用方式
8.3.1.通过setAutoCommit()方法设置连接有一个自动提交模式
8.4.事务提交成本很高
8.4.1.一个目标是在一个事务中执行尽可能多的工作
8.4.2.另一个目标执行时间应该尽可能短
8.4.3.矛盾
8.5.锁可以保护数据的完整性
8.6.事务隔离模式
8.6.1.TRANSACTION_SERIALIZABLE
8.6.1.1.序列化事务
8.6.1.2.成本最高
8.6.1.3.在事务进行期间,事务访问的所有数据都被锁定
8.6.1.4.适用于通过主键访问的数据和通过WHERE子句访问的数据
8.6.1.5.在使用WHERE子句的时候,表会被锁定,这样在事务进行期间就不能添加满足该子句的新数据
8.6.1.6.每次查询时看到的数据就都是一样的
8.6.2.TRANSACTION_REPEATABLE_READ
8.6.2.1.重复读
8.6.2.2.在事务进行期间,被访问的所有数据都被锁定
8.6.2.3.其他事务可以在任何时候向表中插入新的数据
8.6.2.4.幻读(phantom read)
8.6.2.4.1.一个事务重新执行使用某个WHERE子句的查询时,第二次可能会得到不同的数据
8.6.2.5.MySQL默认
8.6.2.6.Oracle不支持
8.6.3.TRANSACTION_READ_COMMITTED
8.6.3.1.不可重复读
8.6.3.2.锁定事务进行期间被写入的数据
8.6.3.3.在事务进行期间,某一时刻读取的数据可能和另一时刻读取的数据不同
8.6.3.4.Oracle默认
8.6.3.5.IBM Db2默认
8.6.4.TRANSACTION_READ_UNCOMMITTED
8.6.4.1.成本最低
8.6.4.1.1.不涉及锁
8.6.4.2.脏读(dirty read)
8.6.4.2.1.一个事务可以读取在另一个事务中写入(但未提交)的数据
8.6.4.2.2.第一个事务可能会回滚(写入操作没有实际发生),因此第二个事务会在错误的数据上操作
8.6.4.3.Oracle不支持
8.6.5.TRANSACTION_NONE
8.6.5.1.JDBC规范定义了第5种事务隔离模式
8.6.6.setTransactionIsolation()方法
8.6.6.1.给数据库提供必要的事务隔离级别
8.6.6.2.如果数据库不支持给定的级别
8.6.6.2.1.JDBC驱动会抛出异常
8.6.6.2.2.自动将隔离级别设置为它支持的下一个更严格的级别
8.6.7.悲观锁(pessimistic locking)
8.6.8.乐观锁(optimistic locking)
8.6.8.1.数据访问不存在竞争,采用乐观锁会显著提升性能
8.6.8.2.当两个数据源之间发生竞争的概率很小时,乐观锁的效果最好
8.7.结果集
8.7.1.设置JDBC驱动一次传输的数据行数
8.7.1.1.可以使用PreparedStatement对象上的setFetchSize()方法
8.7.1.2.默认值因JDBC驱动的不同而不同
8.7.2.处理大量查询数据的应用程序时应该考虑更改数据的提取大小
8.7.3.权衡
8.7.3.1.在应用程序中加载太多数据(给垃圾回收器增加压力)
8.7.3.2.为了检索一组数据而频繁调用数据库
-
当前短讯!读Java性能权威指南(第2版)笔记05_数据库性能JDBC
1 & 160;影响数据库应用程序性能最重要的因素1 1 & 160;JDBC驱动1 1 1 & 160;JPA底层使用了JDB...
来源: -
korean doll likeness模型|Japanese-doll-likeness模型获取及使用
今天一早起来打开C站,发现之前热门的几个doll模型都没有了,猜测是某些原因没有了的。现在首页能搜到的...
来源: -
实时焦点:python通过轮子安装第三方库(以Wordcloud为例)
1 查看python版本直接输入如下命令:python执行结果如下:我们可以直到,本机的python版本为:AMD64bit3...
来源: 当前短讯!读Java性能权威指南(第2版)笔记05_数据库性能JDBC
korean doll likeness模型|Japanese-doll-likeness模型获取及使用
天天微速讯:一招搞定孩子不吃饭问题
实时焦点:python通过轮子安装第三方库(以Wordcloud为例)
全球动态:能否破40亿?《流浪地球2》成2月票房冠军 力压《满江红》
代表建议春节假期延至9天 取消调休!网友期待
天天快看:兼容友商Mesh组网!中兴小方糖路由器今日开售:到手仅99元
当前头条:《流浪地球3》何时出?导演郭帆:估计还要等四年
环球微速讯:3月24日公测!暴雪《暗黑破坏神4》PC配置要求公布
每日报道:MySQL的RR和RC事务隔离级别加锁类型验证
全球今热点:白马非马是什么学派_白马非马是哪家的学说
最完美iPhone要来了!消息称iPhone 16 Pro将采用屏下Face ID
焦点速看:《白夜追凶2》要来了!优酷独家悬疑剧:前作口碑爆火
每日热文:高三女生因百日誓师热血发言表情被网暴 官方回应已心里辅导:女孩未受影响
《暗黑破坏神4》Beta测试系统需求
世界今热点:TVB小花新剧牺牲大!遭五花大绑太重口味,脚踏两只船遭雪藏半年
【全球新要闻】记一次 CesiumJS 中非 4326/3857 WMTS 数据的加载
百度预告3月16日召开发布会:主题围绕文心一言
全球信息:“假苍耳”入侵中国!剧毒杀死牛羊、改变土壤、减产60%
和AI谈恋爱之后 她忘掉了相恋5年的前男友:结局心酸
环球快看:苹果供应商印度工厂突发大火:损失超8300万!一半机器烧毁
全球关注:“春天一把豆,胜过吃猪肉”,常吃4豆,高营养高蛋白,增强免疫
快资讯丨Spring IOC官方文档学习笔记(十三)之环境概要
我国累计落实补偿补助资金近270亿元用于长江禁渔退捕渔民安置
NVIDIA RTX VSR脑补网络视频:标清秒变4K超高清!
每日资讯:离谱!男子邮政寄房产证71天仍未送达
今日热门!AMD锐龙9 7000X3D正式开卖!价格、性能、功耗三杀13900KS
热讯:restaurants怎么读英语发音_restaurants怎么读
【天天播资讯】SpringBoot项目多层级多环境yml设计
天天热头条丨Kubernetes(K8S)应用案例
当前要闻:90后女孩奋斗14年从服务员到博士生 要释放所有潜力:网友感慨太强
热门看点:地铁告示牌提醒“严禁黑车及马自达占用停放”引争议 南京官方解释尴尬
日本女歌手黑崎真音因病去世 年仅35岁
世界时讯:04if分支语句
每日关注!沙特土豪要造巨型科幻建筑了:这次是世界最大立方体
当前信息:搭载全新12代酷睿N200处理器轻薄本仅 2599元!攀升笔记本开学季促销
Rust 知识积累(2)
环球观速讯丨Luffy项目:3、前端调整(全局css、全局配置、全局axios...),后端主页轮播图表设计,接口部分代码编写
世界热消息:pycharm破解版
环球精选!变量处理中的标准化方法
数学家的小故事五十字_50 100字数学家的小故事
焦点播报:曾致2死3伤 特斯拉潮州事故鉴定结果已出:目前不会进行公布
微软与谷歌正面扳手腕:计划推出自家移动应用商店
【世界时快讯】放生大鱼游回岸边“致谢”放生者?别自作多情了 800万粉大V科普
焦点热议:卷死燃油车!新能源价格战打起来了:“迪王”都已坐不住
长安控诉银河之光抄袭背后 两家车企的设计师都是陈政
高并发场景下常见的限流算法及方案介绍
组合数学笔记-计数原理
索尼WF-1000XM4降噪豆发布新固件:可同时连接2台设备
全球报道:女子帮网友表白:单日收入过万
享36个月超长质保!魅族20系列1元超前预订开启:立省699元
《福星小子》新动画角色公开 3月2日最新话登场
身材抢眼!75岁“终结者”施瓦辛格首演电视剧:经典台词“我回来了”
记录--如何优雅地校验后端接口数据
世界今亮点!New Bing怼人、说谎、PUA,ChatGPT已经开始胡言乱语了
要闻:全新起亚K3开启预售 新款起亚K3怎么样?
今热点:只要78元!《元能失控》登陆任天堂国行Switch:支持多人联机 太罕见
今日热闻!累计订单已超5万!比亚迪豪华MPV腾势D9 EV官宣涨价6000元
送女神绝佳好礼 好吃还能发圈!榴芒一刻礼盒大促:立减179元
环球速讯:恐怖!男子酒后吃布洛芬致皮肤大面积剥脱 医生:重度药疹
焦点滚动:另起炉灶?马斯克怒批ChatGPT 欲开发替代品
全球播报:Rust 知识积累(1)
世界百事通!让WPF中的DataGrid像Excel一样可以筛选
全球头条:Codeforces Round #854 by cybercats (Div. 1+2) 1799 A~G 题解
全球报道:2363. 合并相似的物品
【天天速看料】c语言运算符优先级实例解析
资讯:建设银行e路通不用了直接扔了吗_建设银行e路通
恐怕人类永远也搞不定真正的AI!
环球时讯:黄仁勋带着NVIDIA新品发布会来了!RTX 4070梦碎
大量年轻人成为“果粉” :苹果连三星大本营都快攻陷了
精选!AGM G2 Guardian发布:全球首款500米范围热成像手机
全球时讯:不怕停电了?董明珠:格力开始研究将储能技术应用冰箱上
新消息丨.NET MAUI
外敷仙人掌的禁忌和副作用_外敷仙人掌的禁忌
环球热文:官宣定档3月6日 领创科技旗舰荣耀Magic5系列即将国内亮相
需要去看医生的呼噜声什么样?这三种情况要特别注意:有危险
蔚来:阿尔卑斯全系车型采用800V方案 还将共享使用三代换电站
【全球新视野】男子反复发烧20多天被诊出黑热病:发病率仅0.0108/10万
环球快报:一加Buds Pro 2轻享版上架:48dB深度降噪
今热点:11 款顶级 MySQL 图形化工具汇总,总有一款适合你!(建议收藏)
【速看料】Python实战项目3-前后端连接/首页轮播图表设计
热头条丨剑指 Offer 55 - II. 平衡二叉树(java解题)
焦点速讯:安装node并创建vue项目
报告称每天工作超8小时心脏病风险增8成:很多公司拒绝996、启用四天工作制
比亚迪专业个性化品牌曝光:首车性能对标奔驰大G 年内发布
苹果将成本转嫁给果粉!2024年iPad Pro要大涨价
LOL帧率近乎翻倍!Intel Arc A750新驱动测试:大幅提升、最大短板没有了
丰田有队友了!宝马氢燃料SUV将路试:16磅氢能跑500公里
世界速读:CSS中的BFC、IFC、GFC、FFC
环球即时:Synchronized,我要一层一层剥开你的心
全球视点!轻松玩转makefile|基础知识
环球聚焦:曝吴秀波儿子家暴成性,女方晒照满嘴是血,指证男方出轨乱约
周杰伦演唱会数百万人疯抢!演唱会门票30秒卖光
环球新资讯:长安发律师函控诉银河之光抄袭 吉利回应:毫无根据、误导公众
环球微速讯:【同步、共享和内容协作软件】上海道宁与ownCloud让您的团队随时随地在任何设备上轻松处理数据
全白外观拥有硬核实力!影驰Z790金属大师D5 Wi-Fi白金版主板评测:内存轻松提速10%
环球快讯:越来越多PC用户不愿买显卡了:2022年Q4桌面独显销量暴跌43%
世界第一次!中国空间站看到了在轨航天员的“三维皮肤”
【时快讯】89元 小米无线键鼠套装2上架:鼠标轻至45g
环球精选!运酒撞破酒缸1分钟损失5万!男子:一坛酒1000斤 1斤50块钱