Spring整合Druid

2023-11-11

Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。

Druid是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池、插件框架和SQL解析器组成。该项目主要是为了扩展JDBC的一些限制,可以让程序员实现一些特殊的需求,比如向密钥服务请求凭证、统计SQL信息、SQL性能收集、SQL注入检查、SQL翻译等,程序员可以通过定制来实现自己需要的功能。

Druid首先是一个数据库连接池,但它不仅仅是一个数据库连接池,它还包含一个ProxyDriver,一系列内置的JDBC组件库,一个SQL Parser。
Druid支持所有JDBC兼容的数据库,包括Oracle、MySql、Derby、Postgresql、SQL Server、H2等等。
Druid针对Oracle和MySql做了特别优化,比如Oracle的PS Cache内存占用优化,MySql的ping检测优化
首先,强大的监控特性,通过Druid提供的监控功能,可以清楚知道连接池和SQL的工作情况。
  • 监控SQL的执行时间、ResultSet持有时间、返回行数、更新行数、错误次数、错误堆栈信息。
  • SQL执行日志,Druid提供了不同的LogFilter,能够支持Common-Logging、Log4j和JdkLog,你可以按需要选择相应的LogFilter,监控你应用的数据库访问情况。
  • SQL执行的耗时区间分布。什么是耗时区间分布呢?比如说,某个SQL执行了1000次,其中0~1毫秒区间50次,1~10毫秒800次,10~100毫秒100次,100~1000毫秒30次,1~10秒15次,10秒以上5次。通过耗时区间分布,能够非常清楚知道SQL的执行耗时情况。
  • 监控连接池的物理连接创建和销毁次数、逻辑连接的申请和关闭次数、非空等待次数、PSCache命中率等。

其次,方便扩展。Druid提供了Filter-Chain模式的扩展API,可以自己编写Filter拦截JDBC中的任何方法,可以在上面做任何事情,比如说性能监控、SQL审计、用户名密码加密、日志等等。

Druid内置提供了用于监控的StatFilter、日志输出的Log系列Filter、防御SQL注入攻击的WallFilter。

阿里巴巴内部实现了用于数据库密码加密的CirceFilter,以及和Web、Spring关联监控的DragoonStatFilter。

第三,Druid集合了开源和商业数据库连接池的优秀特性,并结合阿里巴巴大规模苛刻生产环境的使用经验进行优化。

  • ExceptionSorter。当一个连接产生不可恢复的异常时,例如Oracle error_code_28 session has been killed,必须立刻从连接池中逐出,否则会产生大量错误。目前只有Druid和JBoss DataSource实现了ExceptionSorter。
  • PSCache内存占用优化对于支持游标的数据库(Oracle、SQL Server、DB2等,不包括MySql),PSCache可以大幅度提升SQL执行性能。一个PreparedStatement对应服务器一个游标,如果PreparedStatement被缓存起来重复执行,PreparedStatement没有被关闭,服务器端的游标就不会被关闭,性能提高非常显著。在类似“SELECT * FROM T WHERE ID = ?”这样的场景,性能可能是一个数量级的提升。但在Oracle JDBC Driver中,其他的数据库连接池(DBCP、JBossDataSource)会占用内存过多&
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring整合Druid 的相关文章

  • MQTT.js 入门教程

    简介 MQTT js 是一个开源的 MQTT 协议的客户端库 使用 JavaScript 编写 主要用于 Node js 和 浏览器环境中 是目前 JavaScript 生态中使用最为广泛的 MQTT 客户端库 MQTT 是一种基于发布 订

随机推荐

  • .shp格式全国基础数据(公路、铁路、水系、国界、省界等)

    地级行政界线 zip 431 86 KB 下载次数 347 国界 zip 844 03 KB 下载次数 427 国界与省界 zip 1 11 MB 下载次数 366 三界以上河流 zip 1 42 MB 下载次数 370 首都和省级行政中心
  • [原创]Heroku 简单部署指南

    1 设置 1 1 环境依赖 1 2 Heroku 客户端安装 1 3 登录 2 应用 2 1 创建 2 2 查看日志 2 3 附加组件 2 4 交互式 Shell 2 5 定义 配置变量 2 6 配置数据库 2 7 Procfile 该部署
  • c++之QT

    Qt入门 C 1 Qt的优势 1 跨平台 几乎支持所有的平台 2 接口简单 容易上手 学习QT框架对学习其他框架有参考意义 3 一定程度上简化了内存回收机制 特定场景下会帮助释放内存 4 开发效率高 能够快速的构建应用程序 5 可以进行嵌入
  • vba复制整个sheet内容_Excel VBA实现复制单元格区域到另一个Sheet

    下面是编程之家 jb51 cc 通过网络收集整理的代码片段 编程之家小编现在分享给大家 也给大家做个参考 Sheet1 Range A2 B9 Select Application CutCopyMode False Selection C
  • ORACLE DBA面试题集

    Oracle笔试题 oracle DBA 面试题及答案 国外公司 oracle数据库笔试题 DBA 国际大公司Oracle 面试笔试题oracle Database DBA Interview Questions 1 How many me
  • 正则表达式(五):浅谈两种匹配操作

    在正则表达式中 匹配是最最基本的操作 使用正则表达式 换种说法就是 用正则表达式去匹配文本 但这只是广义的 匹配 细说起来 广义的 匹配 又可以分为两类 提取和验证 所以 本篇文章就来专门讲讲提取和验证 提取 提取可以理解为 用正则表达式遍
  • Matlab中如何如何隐藏指定的警报(suppress warning)?

    Matlab中如何如何隐藏指定的警报 suppress warning 我们有时候些编写的matlab代码可能过时了或者有一些明显的不恰当的地方 这时候matlab出于好心 在控制台里面给了我们一个黄色的警告提示 可是有时候 代码按照规范来
  • 显存爆炸和pin_memory

    参考 https zhuanlan zhihu com p 117270644 训练模型训练一半时显存爆炸的问题解决 pin memory 表示要将load进来的数据是否要拷贝到pin memory区中 其表示生成的Tensor数据是属于内
  • 机器学习笔记 - 什么是多模态深度学习?

    一 概述 人类使用五种感官来体验和解释周围的世界 我们的五种感官从五种不同的来源和五种不同的方式捕获信息 模态是指某事发生 经历或捕捉的方式 人工智能正在寻求模仿人类大脑 终究是跳不出这具躯壳的限制 人脑由可以同时处理多种模式的神经网络组成
  • 解决报错 模块‘tensorflow.python.keras.api._v2.keras.layers‘没有属性‘CuDNNLSTM‘

    当我写tf keras layers LSTM 我收到了警告 Note that this layer is not optimized for performance Please use tf keras layers CuDNNLST
  • MES管理系统中的看板管理如何提高生产效率

    在制造企业中 生产效率是关系到企业运营效率和成本的关键因素 而MES Manufacturing Execution System 制造执行系统 作为一种现代化的生产管理系统 其看板管理功能对于提高生产效率具有重要作用 下面 我们将详细介绍
  • C# Yield

    https blogs msdn microsoft com oldnewthing 20080814 00 p 21243 https blogs msdn microsoft com oldnewthing 20080815 00 p
  • NIM Server、Client交互操作过程分析——暨NIM防火墙要求

    最后更新2021 08 10 nimsh端口 从AIX 5 2 TL7开始 NIM增加了 nimsh 功能 此功能是原有NIM基于rsh协议操作的升级版 众所周知 rsh协议没有加密传输功能 安全性也很差 nimsh对此进行了升级 以提供更
  • lowbit

    lowbit用来计算二进制数 从右往左数第一个1与其后面的0组成的数 int lowbit int x return x x x 12 1100 lowbit 12 100 4 7 111 lowbit 7 1 1
  • Flutter优秀第三方常用框架

    名称 GitHub地址 下拉刷新上拉加载 EasyRefresh 下拉刷新上拉加载 PullToRefresh SharedPreferences shared preferences 中国城市选择器 city picker 设备信息 de
  • 硬盘存储知识

    存储知识 内存和外存 硬盘 1 物理磁盘类型 硬盘分为 机械硬盘 HDD 和固态硬盘 SSD 注意 买硬盘的时候要注意转速 机械硬盘是以下三种 物理磁盘类型 SATA盘 物理磁盘类型 SAS盘 物理磁盘类型 NL SAS盘 固态硬盘 物理磁
  • 微信小程序期末大作业 中草药小程序 药海拾遗

    微信小程序期末大作业 中草药小程序 药海拾遗 小程序详情如下 下载链接在文末 学习社区可以自己添加内容 点我下载资源 https download csdn net download weixin 43474701 59675965
  • 【Struts2六】ui标签之form标签及数据回显

    ui标签 用在jsp页面用于回显数据的标签 这些标签是由框架定义的 用来替代原生的标签 ui标签有
  • WPF编程,Live Charts使用说明(11)——基本折线图

    后台 using System using System Windows Controls using System Windows Media using LiveCharts using LiveCharts Wpf namespace
  • Spring整合Druid

    Druid是Java语言中最好的数据库连接池 Druid能够提供强大的监控和扩展功能 Druid是阿里巴巴开源平台上的一个项目 整个项目由数据库连接池 插件框架和SQL解析器组成 该项目主要是为了扩展JDBC的一些限制 可以让程序员实现一些