Dưới đây là danh sách và cấu hình tham số tối ưu cho HikariCP (Hikari Connection Pool) dựa trên khuyến nghị từ chính tác giả thư viện và kinh nghiệm vận hành thực tế trong các hệ thống hiệu năng cao.
➡️ Tham số hiệu năng & Kích thước (Bắt buộc lưu ý)
maximumPoolSize:10đến20(mặc định là 10).- Tối ưu: Áp dụng công thức của HikariCP:
connections = ((core_count * 2) + effective_spindle_count). Đừng đặt quá lớn (như 100+), vì sẽ gây nghẽn cổ chai tại CPU của Database do xung đột ngữ cảnh (context switching).
- Tối ưu: Áp dụng công thức của HikariCP:
maxLifetime:1800000(30 phút, mặc định là 30 phút).- Tối ưu: Giá trị này bắt buộc phải ngắn hơn thời gian tự ngắt kết nối (wait_timeout) của Database ít nhất 30 giây đến 1 phút để tránh lỗi kết nối chết (broken connection).
connectionTimeout:30000(30 giây, mặc định là 30 giây).- Tối ưu: Nếu ứng dụng có lưu lượng truy cập (traffic) cực lớn và cần fail-fast (báo lỗi ngay thay vì bắt người dùng đợi lâu), hãy giảm xuống
5000đến10000(5-10 giây).
- Tối ưu: Nếu ứng dụng có lưu lượng truy cập (traffic) cực lớn và cần fail-fast (báo lỗi ngay thay vì bắt người dùng đợi lâu), hãy giảm xuống
idleTimeout:600000(10 phút, mặc định là 10 phút).- Tối ưu: Chỉ có tác dụng nếu bạn cấu hình
minimumIdlenhỏ hơnmaximumPoolSize. Tuy nhiên, HikariCP khuyến nghị không dùng idleTimeout bằng cách đặtminimumIdle = maximumPoolSizeđể pool luôn cố định, giúp đạt hiệu năng tối đa.
- Tối ưu: Chỉ có tác dụng nếu bạn cấu hình
➡️ Tham số Kiểm tra & Xác thực (Validation)
validationTimeout:5000(5 giây, mặc định là 5 giây).- Tối ưu: Giữ nguyên hoặc giảm xuống
2000đến3000(2-3 giây) để phát hiện kết nối lỗi nhanh hơn mà không làm treo luồng xác thực.
- Tối ưu: Giữ nguyên hoặc giảm xuống
connectionTestQuery: Không cấu hình (Để trống).- Tối ưu: Đối với các Driver JDBC hiện đại (JDBC 4.0 trở lên), HikariCP sẽ tự động gọi phương thức
Connection.isValid()tích hợp sẵn. Việc khai báo lệnh SQL thủ công (nhưSELECT 1) là dư thừa và làm giảm hiệu năng.
- Tối ưu: Đối với các Driver JDBC hiện đại (JDBC 4.0 trở lên), HikariCP sẽ tự động gọi phương thức
connectionInitSql: Không cấu hình (Để trống).- Tối ưu: Chỉ dùng khi bạn thực sự cần chạy một lệnh SQL khởi tạo ngay khi một kết nối mới được tạo (ví dụ: thay đổi timezone hoặc bảng mã chữ). Nếu không cần, hãy để trống để tăng tốc độ tạo kết nối.
➡️ Tham số Quản lý & Giám sát
poolName: Đặt tên gợi nhớ (Ví dụ:HikariPool-MySQL-Primary).- Tối ưu: Rất quan trọng khi đọc log hoặc giám sát qua JMX để biết chính xác Pool nào đang gặp sự cố nếu ứng dụng kết nối tới nhiều DB.
leakDetectionThreshold:20000đến60000(20 giây - 60 giây, mặc định là 0 - tắt).- Tối ưu: Bắt buộc nên bật ở môi trường Production. Nếu một luồng mượn kết nối quá thời gian này mà không trả lại (quên close connection), HikariCP sẽ in ra một đoạn log kèm Stack Trace giúp bạn tìm chính xác vị trí code gây rò rỉ.
➡️ Tham số Trạng thái & Cơ chế vận hành
autoCommit:true(Mặc định).- Tối ưu: Giữ nguyên
true. Nếu ứng dụng của bạn dùng các Framework như Spring Boot (với@Transactional), Framework sẽ tự quản lý việc bật/tắt để mở transaction một cách tối ưu nhất.
- Tối ưu: Giữ nguyên
readOnly:false(Mặc định).- Tối ưu: Đặt là
truechỉ khi pool này chuyên dùng cho các Database Replica (chỉ đọc) để tối ưu hóa truy vấn phía DB.
- Tối ưu: Đặt là
transactionIsolation: Không cấu hình (Để trống).- Tối ưu: Nên để Database tự quyết định mức cô lập mặc định (thường là
READ_COMMITTEDhoặcREPEATABLE_READ). Chỉ cấu hình nếu ứng dụng có yêu cầu nghiệp vụ cực kỳ đặc thù.
- Tối ưu: Nên để Database tự quyết định mức cô lập mặc định (thường là
allowPoolSuspension:false(Mặc định).- Tối ưu: Hãy giữ nguyên là
false. Việc bật tính năng tạm dừng pool sẽ sinh thêm các chi phí quản lý luồng (vòng lặp vô hạn kiểm tra trạng thái) gây giảm hiệu năng hệ thống không cần thiết.
- Tối ưu: Hãy giữ nguyên là
TƯ VẤN: Click Here hoặc Hotline/Zalo 090.29.12.888
=============================
Website không chứa bất kỳ quảng cáo nào, mọi đóng góp để duy trì phát triển cho website (donation) xin vui lòng gửi về STK 90.2142.8888 - Ngân hàng Vietcombank Thăng Long - TRAN VAN BINH
=============================
Nếu bạn không muốn bị AI thay thế và tiết kiệm 3-5 NĂM trên con đường trở thành DBA chuyên nghiệp hay làm chủ Database thì hãy đăng ký ngay KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE, được Coaching trực tiếp từ tôi với toàn bộ bí kíp thực chiến, thủ tục, quy trình của gần 20 năm kinh nghiệm (mà bạn sẽ KHÔNG THỂ tìm kiếm trên Internet/Google) từ đó giúp bạn dễ dàng quản trị mọi hệ thống Core tại Việt Nam và trên thế giới, đỗ OCP.
- CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
- Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
2 khóa học online qua video giúp bạn nhanh chóng có những kiến thức nền tảng về Linux, Oracle, học mọi nơi, chỉ cần có Internet/4G:
- Oracle cơ bản: https://bit.ly/admin_1200
- Linux: https://bit.ly/linux_1200
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội
=============================
cơ sở dữ liệu, cơ sở dữ liệu quốc gia, database, AI, trí tuệ nhân tạo, artificial intelligence, machine learning, deep learning, LLM, ChatGPT, DeepSeek, Grok, oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c/21c/23c/23ai, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, docker, k8s, micro service, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty