recherche

Maison  >  Questions et réponses  >  le corps du texte

MySQL se déconnecte-t-il après l'exécution du script php ?

Il existe une instruction SQL qui se connecte à MySQL dans un script. Une fois exécuté, le serveur MySQL ouvre un nouveau thread (ou processus ?) pour traiter la connexion. Une fois le script terminé, se déconnecte-t-il de PHP (ou d'Apache ? ) . Quelles sont ces longues connexions MySQL ? Soudain, j’ai eu l’impression de ne rien comprendre. . .

PHP中文网PHP中文网2782 Il y a quelques jours892

répondre à tous(5)je répondrai

  • PHP中文网

    PHP中文网2017-05-16 13:08:27

    Si vous souhaitez fermer manuellement le framework, écrivez le code de fermeture dans le destructeur de la classe. Il est généralement encapsulé. Il est généralement connecté à MySQL en mode singleton.

    répondre
    0
  • 漂亮男人

    漂亮男人2017-05-16 13:08:27

    1.mysql démarre le processus pour gérer la transaction correspondante

    2. Déconnectez-vous du processus Apache httpd. PHP s'exécute en mode apache mod. Apache reçoit la requête et transmet la requête au mod. Le mod appelle l'exécution de PHP
    L'ensemble du processus PHP est exécuté en mode module apache. processus httpd Moyen

    3. Inconvénients des liens courts : Créez une connexion, et une fois le programme exécuté, le lien vers mysql sera automatiquement rompu. Ainsi, combien de fois PHP sera exécuté, il y aura de nombreux processus de création et de publication. La création et la libération fréquentes de connexions consomment des ressources CPU.

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

    répondre
    0
  • 大家讲道理

    大家讲道理2017-05-16 13:08:27

    Il n'est pas possible de maintenir une longue connexion à partir de PHP seul, mais il existe des moyens d'y parvenir.

    Si vous exécutez PHP en mode Apache+php_module, vous pouvez établir un lien permanent via mysql_pconnect, mais ce lien est maintenu par Apache (mysql_pconnect ne peut pas maintenir de longues connexions sous nginx+fpm, comme l'explique la documentation officielle)

    nginx+fpm fpm est généralement défini sur statique. Grâce à l'extension PDO, une longue connexion peut être définie lors de la connexion à la base de données, et chaque fpm maintient un lien permanent. Cependant, il est toujours nécessaire d'évaluer le nombre de processus FPM et le nombre maximum de connexions à la base de données en fonction du système. S'il y a trop peu de requêtes PHP, un grand nombre de connexions inactives gaspillera des ressources (mysql wait_time doit être configuré de manière appropriée). ). S'il y a trop de requêtes PHP, trop de processus FPM dépasseront la limite de la base de données. Le nombre maximum de connexions entraînera un trop grand nombre de connexions. .

    répondre
    0
  • 天蓬老师

    天蓬老师2017-05-16 13:08:27

    Généralement, php créera un lien court à chaque fois qu'il exécute SQL. Une fois l'exécution terminée, php déconnectera le lien (peut-être après l'expiration du délai, MySQL déconnectera le lien)

    .

    De nos jours, un moyen courant de réduire cette surcharge d'E/S consiste à établir un pool de connexions à la base de données, à maintenir un nombre spécifié de connexions et à obtenir directement les ressources pertinentes lors de son utilisation.

    répondre
    0
  • 大家讲道理

    大家讲道理2017-05-16 13:08:27

    Si vous utilisez le php original, vous devez le fermer manuellement. Le framework est généralement packagé et peut être utilisé directement

    répondre
    0
  • Annulerrépondre