kettle批量新增数据性能提升

发布时间 2023-08-21 14:38:48作者: 喜欢22度的晴天

 

useServerPrepStmts=false
如果服务器支持,是否使用服务器端预处理语句? 默认值为“真”
useCompression=true
characterEncoding=utf8
rewriteBatchedStatements=true
MySQL的JDBC连接的url中要加rewriteBatchedStatements参数,并保证5.1.13以上版本的驱动,才能实现高性能的批量插入。MySQL JDBC驱动在默认情况下会无视executeBatch()语句,把我们期望批量执行的一组sql语句拆散,一条一条地发给MySQL数据库,批量插入实际上是单条插入,直接造成较低的性能。只有把rewriteBatchedStatements参数置为true, 驱动才会帮你批量执行SQL,另外这个选项对INSERT/UPDATE/DELETE都有效

1.增加批量写的速度  useServerPrepStmts=false  rewriteBatchedStatements=true  useCompression=true

2. 增加读的速度:useServerPrepStmts=true   cachePrepStmts=true

参数说明:

useCompression=true,压缩数据传输,优化客户端和MySQL服务器之间的通信性能。

rewriteBatchedStatements=true  ,开启批量写功能

useServerPrepStmts=false  关闭服务器端编译,sql语句在客户端编译好再发送给服务器端,发送语句如上。如果为true,sql会采用占位符方式发送到服务器端,在服务器端再组装sql语句。