Rumah > Soal Jawab > teks badan
Sesetengah keraguan tentang kod sampel rasmi npm pakej mysql:
Lihat kod pertama:
var mysql = require('mysql');
var connection = mysql.createConnection({
hos : 'localhost',
pengguna : 'saya',
kata laluan : 'rahsia',
pangkalan data : 'my_db'
});
connection.connect();
connection.query('SELECT 1 + 1 AS solution', fungsi (ralat, keputusan, medan) {
if (error) throw error;
console.log('The solution is: ', results[0].solusi) ;
});
connection.end();
Selepas melihat pertanyaan, panggil connection.end() untuk memutuskan sambungan;
Lihat bahagian kedua kod:
var mysql = require('mysql'); ...);
// Gunakan sambungan
connection.query('PILIH sesuatu DARI sesuatu jadual', fungsi (ralat, keputusan, medan) {
// And done with the connection.
connection.release();
// Handle error after the release.
if (error) throw error;
// Don't use the connection here, it has been returned to the pool.
});});
Soalan 1 Jika dua keping kod ini:
Sekeping pertama tidak memanggil
connection.end();
Sekeping kedua tidak memanggil
connection.release()
Apakah akibatnya?
2. Apakah perbezaan antara keduanya?
3. Apakah perbezaan antara dua keping kod ini?
Pemahaman peribadi: Bolehkah kumpulan sambungan difahami sebagai cache Selepas menanyakan sekeping data tertentu, pertanyaan kedua untuk data yang sama diambil terus daripada cache, iaitu, daripada kumpulan;
phpcn_u15822017-05-19 10:10:39
1 Operasi pada pangkalan data mesti disekat secara serentak, kerana berbilang sambungan tidak dibenarkan untuk mengendalikan rekod pada masa yang sama. Jika anda ingin mengendalikan pangkalan data, anda mesti mewujudkan sambungan terlebih dahulu, dan pangkalan data tidak tidak membenarkan sambungan. Hadkan penubuhan berbilang sambungan Jika operasi sambungan selesai dan sambungan tidak diputuskan atau dilepaskan, ia akan menjejaskan penubuhan dan penggunaan sambungan berikutnya, yang perlu dielakkan dalam situasi serentak tinggi.
2 Fungsi connection.end() dan connection.release() adalah untuk melepaskan sambungan semasa, tetapi objek yang pertama adalah untuk sambungan biasa, manakala yang kedua adalah untuk kumpulan sambungan.
3 Kumpulan sambungan memang mempunyai fungsi cache, tetapi yang dicache bukanlah data khusus yang dikeluarkan oleh operasi tertentu, tetapi sambungan yang dicache itu sendiri, pada kali seterusnya anda mengendalikan pangkalan data, anda tidak lagi perlu sentiasa mewujudkan sambungan dan Sambungan dimusnahkan.