Sebenarnya istilah pengumpulan koneksi dan koneksi persisten merujuk ke hal yang sama dalam kasus mysqli dalam PHP.
Koneksi terus-menerus dalam hal ini mengacu pada koneksi MySQL yang terbuka dari skrip PHP yang tetap terbuka setelah skrip selesai dieksekusi, untuk digunakan kembali dalam beberapa eksekusi selanjutnya.
Pengumpulan koneksi berarti ada kumpulan koneksi persisten yang dikelola oleh PHP. Satu koneksi idle dari pool ini diberikan ke skrip PHP yang ingin terhubung ke MySQL dan dikembalikan ke pool ketika skrip selesai.
Anda mungkin bertanya-tanya mengapa kita membutuhkan kumpulan koneksi MySQL sama sekali, mengapa kita tidak menggunakan hanya satu koneksi persisten untuk semua skrip?
Ada dua alasan untuk ini:
- PHP membuat kumpulan koneksi MySQL berdasarkan
host/port/username/password
digunakan. Jika satu skrip ingin terhubung ke MySQL dengan beberapahost/port/username/password
kombinasi, PHP mencari koneksi persisten yang menganggur yang memiliki nilai yang sama. Jika tidak ditemukan, maka koneksi persisten baru dibuat denganhost/port/username/password
ini kombinasi. Jadi kita membutuhkan setidaknya koneksi persisten yang berbeda sebanyakhost/port/username/password
yang berbeda nilai yang digunakan oleh semua skrip. - Anda tidak dapat menjalankan dua perintah SQL pada satu koneksi MySQL secara bersamaan. Ini bisa terjadi ketika dua skrip PHP dijalankan secara bersamaan. Ketika dua skrip ingin berkomunikasi dengan MySQL pada saat yang sama, dua koneksi MySQL persisten dibuat. Jumlah koneksi persisten di pool sama dengan jumlah terakhir skrip PHP paralel maksimum yang dieksekusi, atau sama dengan batas atas yang ditetapkan di
php.ini
.
Pemberitahuan penting:
Kumpulan koneksi MySQL (dan kumpulan koneksi lainnya) hanya dapat ada jika PHP dijalankan sebagai plugin server web . Kumpulan tidak berfungsi saat bekerja dalam mode cgi cepat atau dengan cara lain apa pun saat PHP yang dapat dieksekusi berakhir setelah eksekusi skrip.
Sunting:Penyatuan koneksi MySQL dapat digunakan dalam mode cgi cepat PHP jika server web dikonfigurasi untuk menggunakan kembali satu proses cgi cepat PHP untuk beberapa permintaan. Jika proses cgi cepat PHP dikonfigurasi untuk keluar setelah melayani satu permintaan, maka semua koneksi MySQL ditutup.