MySQL DataSource 性能对比(2015-8-19)

2023-05-16

1. 本地性能测试耗时(一)

共同条件:测试程序与数据库在同一台主机上,各DataSource均采用默认配置,每个线程循环1000次,查询语句为select * from table

场景一:10行数据,10个线程

场景二:10行数据,100个线程

场景三:1000行数据,10个线程

场景四:1000行数据,100个线程

场景五:100000行数据,10个线程

结论:

tomcat-jdbc-pool ≈ druid > dbcp2 > BoneCP > c3p0

备注:

负载(数据量、线程数等)过大时,本机CPU将成为瓶颈,会极大影响查询耗时

2. 本地性能测试耗时(二)

默认设置下,各DataSource的连接池大小如下:

tomcat-jdbc-pool(initialSize, minIdle, maxIdle, maxActive) = (10, 10, 100, 100)

dbcp2(initialSize, minIdle, maxIdle, maxTotal) = (0, 0, 8, 8)

c3p0: (initialPoolSize, minPoolSize, maxPoolSize) = (3, 3, 15)

druid(initialSize, minIdle, maxIdle, maxActive) = (0, 0, 8, 8)

BoneCP:不支持设置连接池大小

将各DataSource连接池大小统一设置成最小值为4,最大值为16后,再重新进行一轮性能测试,结果如下:

druid > tomcat-jdbc-pool > dbcp2 > c3p0

结论:在连接池远大于druid的情况下,tomcat-jdbc-pool的性能与之相当;而在同等连接池的情况下,则不如druid,故综合来看druid优于tomcat-jdbc-pool

3. 最新版本(截至2015-8-19)

tomcat-jdbc-pool

org.apache.tomcat:tomcat-jdbc:8.0.24

更新于2015-7-1

druid

com.alibaba:druid:1.0.15

更新于2015-6-30

dbcp2

org.apache.commons:commons-dbcp2:2.1.1

更新于2015-8-2

BoneCP

com.jolbox:bonecp:0.8.0.RELEASE

更新于2013-10-23

c3p0

com.mchange:c3p0:0.9.5.1

更新于2015-6-16

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL DataSource 性能对比(2015-8-19) 的相关文章

  • Laravel updateOrCreate 带有自动增量数据库

    我的目的是如果值存在则更新 否则插入新行提交表单后在数据库表中 问题是 这里的函数添加新列在数据库表中而不是更新它们 这是我的功能 MyModel updateOrCreate array myField gt myValue gt whe
  • 在“等待初始通信数据包”时失去与 MySQL 服务器的连接

    我见过许多堆栈溢出问题 一些博客尝试了解决方法 但没有任何帮助 因此重新发布问题并提供更多详细信息 我看到 MySQL 和 Python 应用程序出现奇怪的行为 详细信息如下 1 我的应用程序在 MySQL 上运行得非常好 在许多平台上进行
  • NodeJs util.promisify 不是一个函数

    我正在尝试 promisify mysql 函数 但是当我运行它时 控制台显示此错误util Promisify is not a function 这是我的代码 var util require util var mysql requir
  • 用于从 PHP 更新实时
  • 的 jQuery 插件
  • 有没有任何 jQuery 插件可以创建类似实时 feed 的东西推特主页 http www twitter com 使用 PHP 它从 MySQL 数据库获取数据 PHP 文件必须如何 Thanks 您确实不需要为此使用插件 您可以使用 j
  • Symfony2 - 访问被拒绝(用户未经过完全身份验证)

    我正在使用 Symfony2 开发一个网站 直到今天 登录没有问题 但现在登录时我没有正确验证 Symfony 分析器将我列为logged in as anon而不是我登录的用户 我还被重定向回登录页面而不是目标路径 登录过程由传统的登录表
  • 课程完成时更新外部数据库

    我的场景 Moodle 中的用户完成了一门课程 一旦发生这种情况 我想更新外部数据库 我的理解是 每次运行 cron 作业时都会触发 course completed 事件 使用一些简单值 例如已完成课程的用户名 ID 课程 ID 以及完成
  • MySQL ORDER BY rand(),名称 ASC

    我想获取一个包含 1000 个用户的数据库并随机选择 20 个用户 ORDER BY rand LIMIT 20 然后按名称对结果集进行排序 我想出了以下查询not像我希望的那样工作 SELECT FROM users WHERE 1 OR
  • mysql_insert_id 带更新

    执行下面的查询后 我使用 PHP 函数mysql insert id 它总是给我0 UPDATE tbl training types SET fld serial serial no fld name training name fld
  • mysql连接3个表

    如何连接三个具有一个公共列 id 的mysql表 例如 从表1中选择a b 从表2中选择c d 从表3中选择e f 其中id x 谢谢 SELECT t1 a t1 b t2 c t2 d t3 e t3 f FROM table1 t1
  • 如何在mySQL数据库中安全地插入代码

    我正在构建一个网站 用户可以使用 PHP 和 mySQL 数据库来存储代码片段 但我不知道如何安全地将用户输入的代码插入我的数据库 我无法使用我通常使用的 安全 功能来转换输入 trim stripslashes等 因为重点是您可以将代码视
  • 如何在codeigniter中从数据库返回最后一条记录?

    我正在尝试获取我拥有数据的最后日期 所以我想打印 date data 列中的最后一个日期 在模型中 public function last record query this gt db gt select LAST date data
  • “key”是MySqli中的保留字吗?我收到错误

    我刚刚真正接触 MySql MySqli 并且正在使用准备好的语句 除了这一行之外 我的整个脚本运行良好 if stmt con gt prepare SELECT bandHash userHash userPassHash type F
  • mysql 扩展已弃用,并将在将来删除:使用 mysqli 或 PDO 代替 [重复]

    这个问题在这里已经有答案了 当我尝试从 PHP 连接到 MySQL 服务器时 我看到以下错误 已弃用 mysql 扩展已弃用 将来将被删除 在第 123 行的 path to filename php 中使用 mysqli 或 PDO 代替
  • 如何使用 CodeIgniter 计算 MySQL 中给定行之前的行数?

    简单来说 如何计算某一行之前有多少行 我使用的是增量 ID 但行是随机删除的 因此仅检查 ID 是行不通的 比如说 如果我有 30 行 并且我根据名称 或任何实际内容 选择了一行 那么在该行之前有多少行 它可以是 16 1 12 或任何值
  • 在 MySQL 中向 BIGINT 列添加索引有帮助吗?

    我有一个包含数百万个条目的表 以及一个包含BIGINT 20 每行的唯一值 它们不是主键 但在某些操作过程中 有数千个SELECTs 在中使用此列WHERE条款 问 向该列添加索引是否有帮助当条目数量增长到数百万时 我知道它适用于文本值 但
  • 在 Mac 上设置 Laravel php artisan 迁移错误:没有这样的文件或目录 [重复]

    这个问题在这里已经有答案了 将一个完美运行的 laravel 项目从 git 拉到运行 MAMP 的 mac 上 项目在linux机器上完美运行 作曲家安装 php artisan migrate 出现以下错误 PDOException S
  • 无法从外部 bash 脚本正确设置 MySQL 密码

    我有两个脚本 主要的一个脚本执行一些不同的操作并调用第二个脚本 第二个脚本安装 MySQL 从我的主脚本中我做了这样的事情 read p Set the password for the database min 4 characters
  • 如何避免MySQL'尝试获取锁时发现死锁;尝试重新启动交易'

    我有一个innoDB表 记录在线用户 它会在用户每次刷新页面时进行更新 以跟踪他们所在的页面以及他们上次访问该网站的日期 然后我有一个每 15 分钟运行一次的 cron 来删除旧记录 我收到 尝试获取锁定时发现死锁 昨晚尝试重新启动事务大约
  • Docker 应用程序更新后无法连接到数据库

    在我的公司 我有一个旧的 Symfony 应用程序在 Docker 容器中运行 该应用程序连接到一个 SQL 数据库 该数据库也在 Docker 容器内运行 该图像是使用 php 7 2 apache stretch 构建的 但该版本已不再
  • 为什么呼叫会话不起作用? (代码点火器 3)

    我的配置是这样的 config sess driver database select database driver config sess save path ci sessions name of the mysql table co

随机推荐

  • 物联网之嵌入式设备

    物联网自提出以来 xff0c 业界对其定义也不断的加深优化 xff0c 使其更具体 更容易与现实结合 xff0c 不再只停留在概念上 xff0c 这其中离不开从业者的探索与发现 物联网按字面理解分三个部分 xff1a 一 物 xff0c 与
  • WIFI模块接入ONENET步骤

    文章目录 前言思维导图一 onenet c文件1 产品IDONENET程序 2 鉴权信息ONENET程序 3 设备IDONENET程序 二 esp8266 c文件1 WIFI名称及密码程序 2 IP及端口 三 打包数据函数 在onenet
  • K8S 控制器 service ingress

    控制器 Pod 的分类 自主式 Pod xff1a Pod 退出后不会被创建 控制器管理的 Pod xff1a 在控制器的生命周期里 xff0c 始终要维持 Pod 的副本数目 控制器类型 Replication Controller和Re
  • K8s---网络通信 Configmap secrer volumesk8s

    k8s网络通信简介 k8s通过CNI接口接入其他插件来实现网络通讯 目前比较流行的插件有flannel xff0c calico等 CNI插件存放位置 xff1a cat etc cni net d 10 flannel conflist
  • Linux进程管理动态查看进程top

    目录 一 解读top命令的显示信息 1 上半部分解读 xff08 前五行 xff09 2 后半部分 xff08 进程信息 xff09 二 top常用内部指令 一 解读top命令的显示信息 命令 xff1a top 注意 xff1a 在top
  • ENSP基本命令和小实验

    ENSP基本命令和小实验 ENSP基本命令1 历史命令查询2 配置主机名3 状态信息查询4 进入接口模式并查看信息5 配置文件管理命令6 关闭华为的信息提示中心7 永不超时8 配置双工及速率命令9 保存配置10 用SecureCRT链接eN
  • 一个刚毕业大学生的四个月苦逼程序员经历

    先来一个自我介绍 大学时排名老三 就暂且叫老三吧 xff0c 毕业于河南的一个还算可以的二本院校 xff0c 专业 地球信息科学与技术 首先介绍一下我的专业 xff0c 听着名字很高大上 xff0c 其实 xff0c 我们都叫他四不像专业
  • windows10系统下基于pybind11库进行c++代码调用python(pytorch)代码

    最近在学习基于lidar mos进行slam激光点云动态物体剔除的相关内容 xff0c 经过调研准备基于pybind11库在实际项目 c 43 43 中调用salsaNext代码 python 使用cmake在测试项目中引入pybind11
  • 事件流是什么

    事件流分为事件冒泡和事件捕获 事件流 xff1a 就是事件的流向 xff0c 先捕获 xff0c 再到事件源 xff0c 最后再冒泡 xff0c 一共分三个阶段 xff1a 捕获阶段 xff0c 事件源 xff0c 冒泡阶段 从上至下再出来
  • 实现浏览器访问基于workman的异步任务

    准备工作 xff1a 安装workman xff0c 引入 目录 xff1a 进程任务服务端service php 提交任务服务端service transit php index php cli模式开启service php和servic
  • socket套接字编程---UDP通信流程和代码编写

    文章目录 1 UDP通信流程和接口介绍1 1UDP通信流程 xff1a 1 2接口介绍 xff1a 1 2 1创建套接字1 2 2为套接字绑定地址信息1 2 3发送数据1 2 4接收数据1 2 5 关闭套接字 释放资源 2 UDP通信代码实
  • 关于嵌入式高级项目小组的规划(初稿)

    关于嵌入式高级项目小组的规划 xff08 初稿 xff09 一 想法初衷 大家好 xff0c 我是一个嵌入式爱好者 虽然不是电子专业 xff0c 也不是软件这些相关的专业 xff0c 但我就是感兴趣 xff0c 从做8位单片机实验到现在自学
  • 嵌入式算法11---矩阵转置与压缩

    在整个物联网系统中 xff0c 嵌入式设备作为数据采集 过滤 缓存 传输的节点 xff0c 前面系列文章分别介绍了嵌入式设备相关的各种数据过滤 校验和压缩存储算法 缓存和传输阶段 xff0c 考虑到嵌入式设备的存储空间和传输带宽限制 xff
  • win10下安装Ubuntu16.04双系统

    win10下安装Ubuntu16 04双系统 最近由于想体验一下Ubuntu系统 xff0c 由于虚拟机的体验不是很好 xff0c 所以便在电脑上试下装双系统 自己也是一步步按着网上的帖子来 xff0c 由于网上的教程都不是最新的而且有的也
  • 【Vue入门实践3】不调后端接口==>el-table单纯前端实现查询和重置功能==>【el-table组件使用】表格静态前端筛选、查询重置功能

    一个人的心理健康程度与接纳痛苦的程度成正比 感谢自己的不完美 目录 一 功能效果描述 二 el table自带筛选功能 三 前端假查询重置功能 1 el form表单 2 el table表格数据 3 search功能 4 reset重置功
  • 控制理论简要介绍

    文章目录 鲁棒控制自适应控制滑膜控制 xff08 变结构控制 xff09 模型预测控制 MPC RBF神经网络 xff08 单隐层神经网络 xff09 xff1a 模糊控制 鲁棒控制 xff08 H无穷 H2 混合控制和LMI控制 xff0
  • ConcurrentHashMap、synchronized与线程安全

    最近做的项目中遇到一个问题 xff1a 明明用了ConcurrentHashMap xff0c 可是始终线程不安全 除去项目中的业务逻辑 xff0c 简化后的代码如下 xff1a public class Test40 public sta
  • Spring MVC集成slf4j-logback

    1 Spring MVC集成slf4j log4j 关于slf4j和log4j的相关介绍和用法 xff0c 网上有很多文章可供参考 xff0c 但是关于logback的 xff0c 尤其是Spring MVC集成logback的 xff0c
  • Spring Bean 创建过程

    0 通常 xff0c 无论是DispatcherServlet ContextLoaderListener还是ClassPathXmlApplicationContext xff0c 首次实例化bean的入口并不是在每次调用getBean的
  • MySQL DataSource 性能对比(2015-8-19)

    1 本地性能测试耗时 xff08 一 xff09 共同条件 xff1a 测试程序与数据库在同一台主机上 xff0c 各DataSource均采用默认配置 xff0c 每个线程循环1000次 xff0c 查询语句为select from ta