首页 > 数据库 >kettle从入门到精通 第三十一课 mysql 数据连接连接池配置

kettle从入门到精通 第三十一课 mysql 数据连接连接池配置

时间:2024-01-16 21:47:18浏览次数:40  
标签:数据库 kettle 参数 空闲 设置 mysql 连接 连接池


无论开发应用程序还是做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,连接,连接池
From: https://www.cnblogs.com/zjBoy/p/17963621

相关文章

  • mysql8.0逻辑架构
    1、逻辑架构剖析1.1、服务器处理客户端请求首先MySQL是典型的C/S架构,即Client/Server架构‘,服务器端程序使用的mysqld。不论客户端进程和服务器进程是采用哪种方式进行通信,最后实现的效果都是:客户端进程向服务器进程发送一段文本(SQL语句),服务器进程处理后再向客户端进程发......
  • MYSQL8以上修改初始root密码的方法
    很遗憾的告诉你,你网上查到的各种改my.enf,各种update,在新版MYSQL中,统统失效。解决方法,如下:1.[root@yisu-5f735cb14d716~]#servicemysqldstartRedirectingto/bin/systemctlstartmysqld.service[root@yisu-5f735cb14d716~]#mysql-vWelcometotheMySQLmonitor.Comm......
  • Mac M2 KETTLE 请求HTTPS接口 SSL 证书错误
    获取证书安装证书sudo/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/bin/keytool-import-aliascarpooling-keystore"/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/security/cacerts"-file/Users/jimog......
  • Mysql8忽略大小写的解决方案
    一、删除服务器数据文件由于8.0没法设置参数后重启(失败),所以必须删掉老库,重新启动才行。切记:;本步骤要删掉老库所有资料,如果是数据库当前有用,请做好备份,再进行操作。systemctlstopmysqldcd/var/lib/mysql默认数据在这里rm-rf*二、添加配置,大小写不敏感vim/etc/my.cnflow......
  • Kettle用查出来的数据自动创建表
    Kettle在表输入的时候,写好很复杂的SQL,有种场景,就是想把这个很复杂的查出来的数据,自动创建一个表。其实,操作步骤不复杂。跟着我来做就是了。1,新建表输出,Shift按住,从表输入拖动箭头到表输出,打开表输出属性,指定数据库,输入需要创建的目标表名。2,点击右下角SQL,自动出来创建表的语句。......
  • nextjs使用prisma连接MySQL
      第一步npminstall@prisma/client 第二步npxprismainit 生成了文件 第三步,修改文件内容 第四步 第五步测试一下,执行npxprismadbpull我里面有一个user表的,拉下来这样显示了 ......
  • mysql常用查询
    1.查询表结构select ordinal_position"序号", column_name"字段", column_type"字段类型", column_key"约束", is_nullable"可空", column_default"默认值", extra"自增性", column_comment"注释"f......
  • 使用shell脚本将doDBA采集到的日志会话信息导入到MySQL数据库
    【背景说明】使用doDBA工具监控的会话信息导入到MySQL数据库的表中【环境说明】doDBA工具采集会话信息(之前有脚本说明)【脚本说明】处理dodba日志信息将日志的innodb日志信息去除审计日志的名称要改为原来的dodba.log名称cd/data/backup/doDBA/log/cpdodba_20231226_09......
  • Mysql8.0安装
    在Linux上卸载MySQL可以按照以下步骤进行操作:首先登录到服务器的命令行界面。使用root或者有管理员权限的账户运行以下命令来停止正在运行的MySQL服务:sudoservicemysqlstop接下来,我们需要删除MySQL相关的文件和目录。根据不同的Linux发行版,这些文件和目录位置会有所不同。常......
  • 使用shell脚本xtrabackup自动恢复MySQL数据库
    【背景说明】按照安全的一些要求,需要定期对数据库进行恢复演练操作【环境说明】MySQL5.7的xtrabackup全库xbstream的加密备份(如果不是流备份跟加密,去掉相关参数)【脚本说明】v_backupdir="/mysqlbackup/recovery/yiyuan"备份文件的目录路径v_dir="/mysqlbackup/recovery/......