Adakah MySQL memutuskan sambungan selepas skrip php dilaksanakan?
PHP中文网
PHP中文网 2017-05-16 13:06:27
0
5
889

Terdapat pernyataan SQL yang menyambung ke mysql dalam skrip Apabila dilaksanakan, pelayan mysql membuka utas baharu (atau proses?) Untuk memproses sambungan selepas skrip tamat, adakah ia memutuskan sambungan daripada PHP (atau apache? ). Apakah sambungan panjang mysql itu? Tiba-tiba saya rasa seperti tidak faham apa-apa. . .

PHP中文网
PHP中文网

认证高级PHP讲师

membalas semua(5)
Ty80

Jika anda ingin menutup rangka kerja secara manual, tulis kod penutup dalam pemusnah kelas Ia biasanya dirangkumkan Jangan risau ia biasanya disambungkan ke mysql dalam mod tunggal

漂亮男人

1.mysql memulakan proses untuk mengendalikan transaksi yang sepadan

2. Putuskan sambungan dari proses httpd apache PHP berjalan dalam mod mod apache dan memajukan permintaan ke mod panggilan PHP
PHP dijalankan dalam mod modul apache Proses httpd Sederhana

3. Kelemahan pautan pendek: Buat sambungan, dan selepas program dijalankan, pautan ke mysql akan terputus secara automatik. Jadi berapa kali PHP dilaksanakan, akan terdapat banyak proses penciptaan dan pelepasan sedemikian. Kerap mencipta dan melepaskan sambungan menggunakan sumber CPU.

 长连接就可以避免每次请求都创建连接的开销,节省了时间和IO消耗。
 
 mysql发现一个链接长时间没有执行查询请求,就会自动断掉这个连接
大家讲道理

Tidak mungkin untuk mengekalkan sambungan yang panjang dari PHP sahaja, tetapi ada cara untuk mencapainya.

Jika anda menjalankan PHP dalam mod Apache+php_module, anda boleh mewujudkan pautan kekal melalui mysql_pconnect, tetapi pautan ini dikekalkan oleh Apache (mysql_pconnect tidak dapat mengekalkan sambungan panjang di bawah nginx+fpm, seperti yang dijelaskan oleh dokumentasi rasmi)

nginx+fpm fpm biasanya ditetapkan kepada statik Melalui sambungan PDO, sambungan yang panjang boleh ditetapkan apabila menyambung ke pangkalan data, dan setiap fpm mengekalkan pautan kekal. Walau bagaimanapun, masih perlu untuk menilai bilangan proses FPM dan bilangan maksimum sambungan pangkalan data berdasarkan sistem Jika terdapat terlalu sedikit permintaan PHP, sebilangan besar sambungan terbiar akan membazirkan sumber (mysql wait_time perlu dikonfigurasikan dengan sewajarnya. ). Jika terdapat terlalu banyak permintaan PHP, terlalu banyak proses FPM akan melebihi had pangkalan data Jumlah maksimum sambungan akan menyebabkan terlalu banyak sambungan. .

Peter_Zhu

Secara amnya, php akan membuat pautan pendek setiap kali ia melaksanakan sql Apabila pelaksanaan selesai, php akan memutuskan sambungan (mungkin selepas tamat masa, MySQL akan memutuskan sambungan)

.

Pada masa kini, cara biasa untuk mengurangkan overhed IO ini adalah dengan mewujudkan kumpulan sambungan pangkalan data, mengekalkan bilangan sambungan tertentu dan terus mendapatkan sumber yang berkaitan apabila menggunakannya.

大家讲道理

Jika anda menggunakan php asal, anda perlu menutupnya secara manual. Rangka kerja biasanya dibungkus dan boleh digunakan terus

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan