Ya, connection pool yang kecil memang boleh buat query jadi lembap, lagi-lagi kalau sistem tengah sibuk. Ini sebabnya:
1. Tak Cukup Sambungan (Connection Starvation):
Kalau sambungan dalam pool sikit, query-query baru kena tunggu giliran sebab semua sambungan tengah sibuk. Ini akan tambah masa untuk query tu mula berjalan.
2. Query Kena Beratur:
Bila semua sambungan penuh, query baru tak ada pilihan selain tunggu. Lagi banyak query masuk, lagi panjang barisan, dan ini akan buat sistem jadi slow.
3. Berebut Sumber:
Sambungan sikit, semua query akan berebut nak guna sambungan yang ada. Ini akan jadi punca kelewatan.
4. Overhead Buka/Tutup Sambungan:
Kalau pool tak cukup, sistem mungkin terpaksa buka sambungan baru setiap kali ada permintaan. Proses buka sambungan ni agak berat, jadi lagi banyak masa terbuang.
5. Kurang Throughput:
Bila sambungan sikit, sistem tak boleh jalankan banyak query serentak. Ini buatkan jumlah query yang siap setiap saat jadi berkurang.
Macam Mana Nak Selesaikan?
Tambah Saiz Connection Pool: Laras saiz connection pool ikut keperluan sistem dan beban kerja. Gunakan library macam HikariCP atau C3P0 untuk handle pool ni.
Optimumkan Query: Pastikan query tu pantas dan tak lama sangat guna sambungan. Kalau query lembap, sambungan akan ‘tersangkut’ lebih lama.
Pantau Sambungan: Tengok guna alat pemantauan untuk check connection pool penuh ke tak. Kalau penuh cepat, maknanya kena tambah pool.
Tweak Database: Pastikan database korang dah optimum – indeks betul, query cepat, dan sumber mencukupi.
Pendek cerita, connection pool kecil akan jadi penghalang (bottleneck) sebab query kena tunggu lama untuk dapat sambungan. Lagi sibuk sistem, lagi terasa lembapnya!