无论开发应用程序还是做ETL研发,都离不开连接池的应用,如下是kettle中mysql 连接池设置界面,今天重点讲解下连接池中的参数配置。

defaultAutoCommit

当 defaultAutoCommit 参数设置为 true 时,表示连接会自动提交每个单独的SQL语句,这意味着每个语句都将被当作一个独立的事务自动提交到数据库中。

当 defaultAutoCommit 参数设置为 false 时,表示连接不会自动提交事务,需要手动调用 commit() 方法来提交事务。

defaultReadOnly

连接池中的参数 defaultReadOnly 用来设置数据库连接的默认只读(read-only)模式。当 defaultReadOnly 参数设置为 true 时,表示连接将以只读模式进行操作;当设置为 false 时,表示连接可以进行读写操作。

在只读模式下,数据库连接只能执行查询操作,而对于更新、插入和删除等写操作将会被拒绝。这对于一些特定的场景非常有用,例如在某些情况下你可能希望明确地限制连接只能用于执行查询操作,以防止意外的数据修改。

defaultTransactionlsolation

连接池中的参数 defaultTransactionIsolation 用来设置数据库连接的默认事务隔离级别。事务隔离级别是数据库管理系统中用来控制并发访问的一个重要概念,它决定了在并发环境下不同事务之间的可见性和影响。

设置 defaultTransactionIsolation 参数可以影响数据库连接的默认事务隔离级别,其中包括以下常见的四个级别:

  1. TRANSACTION_NONE:表示不支持事务。
  2. TRANSACTION_READ_UNCOMMITTED:表示一个事务可以读取另一个事务修改但还没有提交的数据。这可以导致脏读、不可重复读和幻读的问题。
  3. TRANSACTION_READ_COMMITTED:表示一个事务只能读取另一个事务已经提交的数据,可以避免脏读,但是不可重复读和幻读仍然可能发生。
  4. TRANSACTION_REPEATABLE_READ:表示一个事务在整个过程中都可以看到同样的数据记录。可以避免脏读和不可重复读,但是仍可能出现幻读问题。
  5. TRANSACTION_SERIALIZABLE:表示事务串行执行,可以避免脏读、不可重复读和幻读,但会影响性能。

根据业务需求和数据库的支持情况,你可以在连接池参数中设置 defaultTransactionIsolation 参数,以控制不同连接的默认事务隔离级别。需要注意的是,并非所有的数据库都支持所有的事务隔离级别,因此在设置该参数时需要注意对应数据库的支持情况。

defaultCatalog

通过设置 defaultCatalog 参数,你可以指定连接在没有明确指定目录的情况下,默认使用的数据库目录。这对于需要在多个数据库目录中进行操作的场景非常有用。

需要注意的是,并非所有的数据库系统都使用 Catalog 的概念,因此在使用 defaultCatalog 参数时需要确保你所连接的数据库系统支持该功能。一些常见的数据库系统如 MySQL、PostgreSQL、SQL Server 等都支持 Catalog 的概念,而像 SQLite 这样的数据库则不需要设置 defaultCatalog 参数。

initialSize

参数 initialSize 用于设置连接池的初始大小。具体来说,initialSize 参数表示在连接池初始化时一次性创建并准备好的数据库连接的数量。

通过设置 initialSize 参数,可以在应用启动时预先创建一定数量的数据库连接,以便在应用程序需要时能够快速获取数据库连接,减少连接获取的延迟时间,提高系统的响应速度。

maxActive

参数 maxActive 用于设置连接池中允许的最大活动连接数。换句话说,maxActive 参数指定了在同时向数据库请求连接时连接池可以拥有的最大连接数目限制。

通过设置 maxActive 参数,可以对数据库连接的并发数量进行限制,防止系统因为过多的连接请求而导致资源耗尽、性能下降甚至崩溃。这项设置对于控制系统对数据库的并发访问非常重要,能够保护数据库不受过载而导致的性能问题。

maxldle

参数maxIdle用于设置连接池中允许的最大空闲连接数。换句话说,maxIdle参数指定了在连接池中保持的最大空闲连接数的限制。

通过设置maxIdle参数,可以对连接池中连接的空闲数量进行限制,以便及时释放闲置的数据库连接而不会占用过多的系统资源。这个设置对于控制系统对数据库连接的管理非常重要,可以有效地避免过多的闲置连接造成资源浪费和性能下降。

minldle

连接池中的参数 minIdle 用于设置连接池中保持的最小空闲连接数。换句话说,minIdle 参数指定了在连接池中保持的最小空闲连接数的限制。

通过设置 minIdle 参数,可以确保连接池中始终保持一定数量的空闲连接可供使用。这对于在系统空闲或低负载时能够快速响应新的数据库连接请求非常重要,从而减少连接创建和销毁的开销,提高系统的响应速度。

maxWait

参数maxWait用于设置获取数据库连接的最大等待时间。当连接池中的所有连接都被占用,且达到了最大活动连接数(maxActive)的限制时,新的连接申请会被阻塞,并等待maxWait指定的时间。

如果在maxWait指定的时间内没有可用的连接,那么连接申请将会抛出异常或者超时,返回连接请求失败的信息。通过设置maxWait参数,可以对连接获取的等待时间进行限制,确保系统能够在合理的时间内获得数据库连接,避免长时间的无效等待造成系统性能问题。

validationQuery

连接池中的参数validationQuery用于设置用于验证连接是否有效的SQL查询语句。当连接从连接池中取出后,连接池会通过执行validationQuery来检验该连接是否有效,即是否可以正常地进行数据库操作。

通过配置validationQuery,连接池可以在提供连接给应用程序之前先对连接的有效性进行验证,确保应用程序获得的连接都是可用的,从而避免应用程序因使用无效连接而产生的异常和错误。

testOnBorrow

连接池中的参数testOnBorrow用于指定在从连接池中获取连接时,是否执行连接的可用性检测。如果设置为true,每次从连接池中获取连接时,都会通过执行validationQuery或者通过验证连接的方式来检测连接是否可用。

testOnReturn

参数testOnReturn用于指定在将连接返回到连接池时,是否执行连接的可用性检测。如果设置为true,每次归还连接到连接池时都会通过执行validationQuery或验证连接的方式来检测连接的可用性。

testWhileldle

连接池中的参数testWhileIdle用于指定连接在空闲时是否执行可用性检测。如果设置为true,连接池会定期对连接进行可用性检测,以确保连接在空闲时依然可用。

通过配置testWhileIdle参数,可以避免连接在长时间空闲后失效的情况,从而提高连接的可靠性和稳定性。

timeBetweenEvictionRunsMillis

连接池中的参数timeBetweenEvictionRunsMillis用于指定两次空闲连接检测之间的时间间隔。这个参数主要用于控制连接池对空闲连接的检测频率。

具体来说,timeBetweenEvictionRunsMillis参数可以设置一个时间间隔,连接池会在这个时间间隔内定期对连接进行空闲性检测,保证连接在长时间空闲后不会失效或变得不可用。这样可以有效避免由于长时间空闲导致的连接失效问题,提高连接池的可靠性和稳定性。

poolPrenaredStatements

连接池中的参数poolPreparedStatements用于指定是否缓存预编译的SQL语句。当该参数设置为true时,连接池会缓存预编译的SQL语句,以提高数据库操作的性能和效率。

通过开启poolPreparedStatements参数,连接池在执行SQL语句时会先进行预编译并缓存起来,下次执行相同的SQL语句时就可以直接使用缓存的预编译语句,而不需要重新进行编译,从而减少了数据库的工作量,提高了数据库操作的执行效率。

maxOpenPreparedStatements

连接池中的参数 maxOpenPreparedStatements 用于指定在连接池中可以缓存的预编译的语句的最大数量。当开启了 poolPreparedStatements 参数并且需要缓存预编译的 SQL 语句时,maxOpenPreparedStatements 参数就会起到限制连接池中缓存的预编译语句数量的作用。

accessToUnderlyingConnectionAllowed

连接池中的参数 accessToUnderlyingConnectionAllowed 用于指定是否允许从连接池中获取底层数据库连接。当该参数设置为true时,允许从连接池中获取底层数据库连接;设置为false时,禁止从连接池中获取底层数据库连接。

允许访问底层数据库连接可以给开发人员提供更多的灵活性,他们可以直接操作底层数据库连接来执行一些特定的、连接池无法满足的操作,但这也增加了对数据库连接的直接控制,需谨慎操作以避免对连接池的稳定性和性能造成影响。

removeAbandoned

参数 removeAbandoned 用于指定是否开启自动移除被抛弃(abandoned)但未关闭的连接。当该参数设置为true时,连接池会自动检测并移除被抛弃的连接;设置为false时,连接池不会进行自动移除被抛弃的连接。

“被抛弃的连接”是指一个连接被借用后,在一定时间内没有被归还到连接池,连接池会将其识别为被抛弃的连接。这种情况可能发生在开发人员在使用连接后没有正确的归还连接到连接池,导致连接被长时间占用而没有释放回连接池。

removeAbandonedTimeout

参数 removeAbandonedTimeout 用于指定连接被认为是被抛弃(abandoned)的超时时间。如果连接在连接池中被借用后未在指定的时间内归还,连接池会将其视为被抛弃的连接,并可能会根据配置移除该连接。

logAbandoned

连接池中的参数 logAbandoned 用于指定是否记录被抛弃的连接的堆栈跟踪信息。当该参数设置为true时,连接池会记录被抛弃的连接的堆栈跟踪信息;设置为false时,连接池不会记录被抛弃的连接的堆栈跟踪信息。

kettle从入门到精通 第三十一课 mysql 数据连接连接池配置的更多相关文章

  1. SaltStack 入门到精通第三篇:Salt-Minion配置文件详解

    SaltStack 入门到精通第三篇:Salt-Minion配置文件详解 作者:ArlenJ  发布日期:2014-06-09 17:52:16   ##### 主要配置设置 ##### 配置 默认值 ...

  2. GPU 编程入门到精通(三)之 第一个 GPU 程序

    博主因为工作其中的须要.開始学习 GPU 上面的编程,主要涉及到的是基于 GPU 的深度学习方面的知识,鉴于之前没有接触过 GPU 编程,因此在这里特地学习一下 GPU 上面的编程.有志同道合的小伙伴 ...

  3. NeHe OpenGL教程 第三十一课:加载模型

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  4. python第三十一课--递归(2.遍历某个路径下面的所有内容)

    需求:遍历某个路径下面的所有内容(文件和目录,多层级的) import os #自定义函数(递归函数):遍历目录层级(多级) def printDirs(path): dirs=os.listdir( ...

  5. Hibernate从入门到精通(三)Hibernate配置文件

    在上次的博文Hibernate从入门到精通(二)Hibernate实例演示我们已经通过一个实例的演示对Hibernate的基本使用有了一个简单的认识,这里我们在此简单回顾一下Hibernate框架的使 ...

  6. 【PHP】最详细PHP从入门到精通(三)——PHP中的数组

     PHP从入门到精通 之PHP中的数组 各位开发者朋友大家好,链接上次更新,我们PHP的学习也更深了一层,本次博主给大家带来PHP数组的数组实例详解的相关资料.数组分为数组数值数值,关联数组,多维数组 ...

  7. 【PHP】最详细PHP从入门到精通(三)——PHP中的数组常用函数汇总

     PHP从入门到精通 之PHP中的数组常用函数详解 数组作为PHP中最常用的结构之一,PHP强大的数组函数功能,给数组的相关操作带来了极大的便利.今天给大家介绍的PHP中数组函数,是PHP数组中重要的 ...

  8. Jmeter(七) - 从入门到精通 - 建立数据库测试计划实战<MySQL数据库>(详解教程)

    1.简介 在实际工作中,我们经常会听到数据库的性能和稳定性等等,这些有时候也需要测试工程师去评估和测试,上一篇文章宏哥主要介绍了jmeter连接和创建数据库测试计划的过程,宏哥在文中通过示例和代码非常 ...

  9. linux学习之centos(三):mysql数据库的安装和配置

    前言:mysql简介 说到数据库,我们大多想到的是关系型数据库,比如mysql.oracle.sqlserver等等,这些数据库软件在windows上安装都非常的方便,在Linux上如果要安装数据库, ...

  10. kettle从入门到精通 第十一课 kettle javascript 解析json数组

    1.json步骤虽然可以解析json数组,但是不够灵活.通过javascript步骤来解析json数组比较灵活,且可以按照需要组装数据流转到下个步骤. 1)步骤名称:可以自定义 2)Transform ...

随机推荐

  1. Power Outage

    由于Covid-19的原因一直是work from home, 在几天前家里的电表有问题需要人来维修,在这期间会停电大概半小时操作,虽然是wfh,但是还是要保障工作的正常进行,保守估计可以顺利渡过. ...

  2. 4款值得推荐的AI辅助编程工具(支持C#语言)

    前言 在这个AI迅速发展的阶段,涌现出了一大批好用的AI辅助编程工具.AI辅助编程工具能够提高开发效率.改善代码质量.降低bug率,是现代软件开发过程中的重要助手.今天大姚给大家分享4款AI辅助编程工 ...

  3. 力扣231(java)-2的幂(简单)

    题目: 给你一个整数 n,请你判断该整数是否是 2 的幂次方.如果是,返回 true :否则,返回 false . 如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方. 示例 ...

  4. 欢迎 Llama 3:Meta 的新一代开源大语言模型

    介绍 Meta 公司的 Llama 3 是开放获取的 Llama 系列的最新版本,现已在 Hugging Face 平台发布.看到 Meta 持续致力于开放 AI 领域的发展令人振奋,我们也非常高兴地 ...

  5. 使用EasyCV Mask2Former轻松实现图像分割

    简介: EasyCV可以轻松预测图像的分割谱以及训练定制化的分割模型.本文主要介绍如何使用EasyCV实现实例分割.全景分割和语义分割,及相关算法思想. 作者:贺弘 谦言 临在 导言 图像分割(Ima ...

  6. 埃森哲携手阿里云,采用K8s容器云服务为客户提供无限弹性

    简介: 埃森哲作为全球领先的专业服务公司,在数字化.云计算等领域拥有全球领先的能力,我们在多年的实际客户项目中,找到并沉淀出了适合企业数字化转型的方法论,积累了丰富的落地经验. 作者:姚迪.周警伟 随 ...

  7. 万物智联时代的终端智能「管家」 重磅升级:混合云IoT一体机

    ​简介: 「混合云IoT一体机」边缘部署.开箱即用.安全稳定.智管易用,通过定制软件和硬件相结合,预先定制.集成.测试和优化,实现快速部署和远程运维,并提升后续系统可用性和运维效率,是万物互联时代企业 ...

  8. [HTML] 访问 a 链接不带 referer 的方式

    html5 新属性 referrerpolicy: referrerpolicy no-referrer no-referrer-when-downgrade origin origin-when-c ...

  9. dotnet C# 高性能配置文件读写库 dotnetCampus.Configurations 简介

    在应用程序运行的时,需要根据不同的配置执行不同的内容.有很多根据配置而初始化的功能往往是在应用程序启动的时候需要执行.对于很多类型的应用程序,特别是客户端的应用程序,启动的性能特别重要.也因此,在启动 ...

  10. Postergresql常见操作

    Postergresql常见操作 1. 安装部署 略 2. 登录数据库 查看版本 ## 以管理员身份 postgres 登陆,然后通过#psql -U postgres#sudo -i -u post ...