Connection Pooling with HikariCP
Database CONNECTION establish karna EXPENSIVE OPERATION hai — NETWORK HANDSHAKE, AUTHENTICATION, SESSION SETUP — SAB, HAR SINGLE REQUEST ke liye REPEAT karna, SEVERELY SLOW hoga. CONNECTION POOLING is PROBLEM ko SOLVE karta hai — EK SET of PRE-ESTABLISHED connections MAINTAIN kiye jaate hain, JO REUSE hote hain.
Spring Boot 2.x+ mein, HikariCP DEFAULT connection pool hai — BENCHMARKS mein, OTHER pools (Apache DBCP2, C3P0) se CONSISTENTLY FASTER aur LESS OVERHEAD wala PAAYA GAYA hai. spring-boot-starter-data-jpa mein YE AUTOMATICALLY INCLUDED hai, KOI EXTRA DEPENDENCY nahi chahiye.
# application.properties — HikariCP tuning:
spring.datasource.hikari.maximum-pool-size=10
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.idle-timeout=600000
spring.datasource.hikari.max-lifetime=1800000
# COMMON formula pool size ke liye:
# connections = (CPU cores * 2) + effective_spindle_count- Connection pooling = pre-established connections REUSE, NAYA connection NAHI banaते HAR baar
- HikariCP = Spring Boot 2.x+ DEFAULT, FASTEST benchmarked pool
- Pool size TUNING — bahut CHHOTA (waiting) ya bahut BADA (database overwhelm) DONO PROBLEMATIC
Spring Boot 2.x+ mein, HikariCP DEFAULT connection pool hai (spring-boot-starter-data-jpa mein AUTOMATICALLY INCLUDED) — BENCHMARK mein, HikariCP OTHER pools (C3P0, Apache DBCP) se FASTER, aur LESS OVERHEAD wala hai.
spring.datasource.hikari.maximum-pool-size = MAXIMUM connections POOL mein RAKHEGA. YE VALUE bahut CAREFULLY choose karni chahiye — BAHUT CHHOTA (requests WAIT karengi), BAHUT BADA (database OVERWHELM ho sakta hai). COMMON FORMULA: (CPU cores × 2) + effective_spindle_count.
spring.datasource.hikari.maximum-pool-size=10
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.connection-timeout=30000