标签频道
JDBC
该标签下的文章、提问与讨论帖。
【背景】 我们用 Go 1.22 + MySQL 8.0.36 做事件采集,单机 12C48G,SSD,主从半同步。写入链路:Kafka 消费端 → JDBC 批量 multi-row INSERT → MySQL。 【现象】 - 调整 M
我们用 Go 1.22 + MySQL 8.0.36 做事件采集,单机 12C48G,SSD,主从半同步。写入链路:Kafka 消费端 → JDBC 批量 multi-row INSERT → MySQL。 【现象】 - 调整连接池参数(M
一、背景与问题 在 KA 消费端 → JDBC 批量 multi-row INSERT → MySQL 的高并发写入场景中,我们遭遇了典型的连接池配置陷阱:当 MaxPoolSize=100 时,P99 延迟仍高达 1.2s。这一现象与常规
一、背景与问题 在金融交易系统中,单日峰值 500 万 TPS 的场景下,MySQL 8.0 连接池配置成为性能调优的核心矛盾点。当连接池容量从 500 扩展到 2000 时,CPU 使用率飙升 78%,但 P99 抖动率却增加 300%(
我们用 Go 1.22 + MySQL 8.0.36 做事件采集,单机 12C48G,SSD,主从半同步。写入链路:Kafka 消费端 → JDBC 批量 multi-row INSERT → MySQL。 【现象】 - 调整连接池参数(M
【背景】 我们用 Go 1.22 + MySQL 8.0.36 做事件采集,单机 12C48G,SSD,主从半同步。写入链路:Kafka 消费端 → JDBC 批量 multi-row INSERT → MySQL。 【现象】 - 调整连接
【背景】 在高并发场景下,JDBC 驱动服务端取消 SQL 是常见需求(如超时/中断/取消),但 MySQL Connector/J 和 PostgreSQL JDBC 的实现差异容易引发踩坑。 【常见分歧】 1. MySQL Connec
背景:我们服务在双十一流量峰值时,发现部分写入请求在服务端被异常取消,导致数据丢失且无报错日志。 现象: 1. MySQL Connector/J 8.0.33 在 QPS 5000+ 时出现 3% 的写入失败率,抛出 "java.sql.
【背景】 在高并发场景下,JDBC驱动服务端取消SQL(如调用cancel())是避免资源浪费的关键操作。但MySQL Connector/J与PostgreSQL JDBC在实现机制上存在显著差异,可能导致性能抖动或资源泄漏。 【常见分歧
现象或背景:高并发下 JDBC 驱动服务端取消 SQL 的实现差异 在双十一流量峰值时,我们发现部分写入请求在服务端被异常取消,导致数据丢失且无报错日志。具体表现为: - MySQL Connector/J 8.0.33 在 QPS 500
背景:我们服务单机 QPS 2.3 万时,发现 MySQL 8.0 驱动 8.0.33 在长连接池中会出现 SQL 被服务端取消的现象,而 PostgreSQL JDBC 42.6.0 无此问题。 现象: 1. MySQL 会抛出 java
背景:我们服务在双十一流量峰值时,发现部分写入请求在服务端被异常取消,导致数据丢失且无报错日志。 现象: 1. MySQL Connector/J 08.0.29 在高并发下出现 3% 的写入失败率 2. PostgreSQL JDBC 4
背景 维护一个 QPS 5000+ 的交易链路,下游 DB 层存在偶发 P99 300ms+ 的抖动。当上游超时后,发现 JDBC 连接池中仍有大量「孤儿工作」占用资源,导致线程池和连接池容量被拖垮。 现象 1. 使用 "Statement
背景 我维护一条三层调用链:网关(超时 200ms)→ 聚合服务 B(OkHttp 调 C 超时 150ms)→ 数据服务 C(Spring Boot + HikariCP maximumPoolSize=20,连接 MySQL 8.0.3
背景 我负责一条埋点落库链路:Kafka → 自研消费者 → JDBC 批量 INSERT 写 MySQL 8.0(InnoDB,binlog_format=ROW,sync_binlog=1,innodb_flush_log_at_trx
背景 我负责一条实时 ETL 管道的核心组件:从 MySQL 读 50~200 万行增量数据做转换后写回目标库。JDK 17 + HikariCP 5.1,maxSize=20。触发方式是定时任务 + Kafka 事件双驱动,高峰期并发读连
结论先行 批量插入慢,十有八九不是 SQL 写得差,而是「一次只提交一条」+「驱动没把 batch 拼成 multi-row INSERT」+「每条都强制刷盘」三件事叠在一起。我们一个埋点落库服务,单机写入吞吐从 1200 行/s 提到 9
结论先行 一次离线对账要导出 2.1 亿行订单明细,用 JDBC "ResultSet" 逐行 "while(rs.next())" 读,照样 OOM——因为 MySQL Connector/J 默认 "fetchSize=0",驱动会在
文
标题
摘要