无论开发应用程序还是做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. 基础 IO (Linux学习笔记)

    基础IO 1.重谈文件 空文件在磁盘也要占据空间 文件 = 内容 + 属性 文件操作 = 对文件内容+对属性 or 对文件内容加属性 标定一个文件,必须使用文件路径加文件名[唯一性] 如果没有指明对应 ...

  2. 力扣550(MySQL)-游戏玩法分析Ⅳ(中等)

    题目: 需求:编写一个 SQL 查询,报告在首次登录的第二天再次登录的玩家的分数,四舍五入到小数点后两位.换句话说,您需要计算从首次登录日期开始至少连续两天登录的玩家的数量,然后除以玩家总数. 查询结 ...

  3. EventBridge 与 FC 一站式深度集成解析

    ​简介:本篇文章通过对 EventBridge 与 FC 一站式深度集成解析和集成场景的介绍,旨在帮助大家更好的了解面对丰富的事件时,如何使用 EventBridge 与 FC 的一站式集成方案,快速 ...

  4. Kubernetes 稳定性保障手册 -- 可观测性专题

    简介: 伴随大家对稳定性重视程度的不断提升.社区可观测性项目的火热,可观测性成为了一个很热门的话题,站在不同的角度会产生不同的理解. 我们从软件开发的生命周期出发,尝试形成对可观测性的一个宏观理解,并 ...

  5. Hologres揭秘:深度解析高效率分布式查询引擎

    简介: 从阿里集团诞生到云上商业化,随着业务的发展和技术的演进,Hologres也在持续不断优化核心技术竞争力,为了让大家更加了解Hologres,我们计划持续推出Hologers底层技术原理揭秘系列 ...

  6. Quick BI电子表格: 新手亦可表格自由

    ​简介: 随着企业业务快速增长,单纯的表或交叉表展现的数据模式相对固定,已不能满足企业中不同角色用户.不同业务场景数据可视化分析展现的诉求.在满足业务人员可视化需求层面,Quick BI不仅提供了丰富 ...

  7. ansible(13)--ansible的lineinfile模块

    1. lineinfile模块 功能:修改或删除文件内容,与系统中的 sed 命令类似: 主要参数如下: 参数 说明 path 指定要操作的文件 regexp 使用正则表达式匹配对应的行 line 修 ...

  8. python教程6.6-发送邮件smtplib

    实现步骤: Python对SMTP⽀持有 smtplib 和 email 两个模块, email 负责构造邮件, smtplib 负责发送邮件,它对smtp协议进⾏了简单的封装. 简单代码示例: 发送 ...

  9. three.js教程2-几何体BufferGeomety顶点

    1.网格模型(三角形概念) 网格模型Mesh其实就一个一个三角形(面)拼接构成.使用使用网格模型Mesh渲染几何体geometry,就是几何体所有顶点坐标三个为一组,构成一个三角形,多组顶点构成多个三 ...

  10. spring-boot集成Quartz-job存储方式二RAM,改从json配置文件读取job配置

    前面第二种RAM方法已经可以满足单机使用需求了,但是本地调试和服务器应用会有冲突,因此将定时任务保存到本地json配置文件中,这样更灵活. 1.ApplicationInit类 package org ...