Rumah  >  Artikel  >  pembangunan bahagian belakang  >  PHP如何实现访问MySQL的查询超时

PHP如何实现访问MySQL的查询超时

coldplay.xixi
coldplay.xixiasal
2020-08-27 09:16:232871semak imbas

PHP实现访问MySQL的查询超时方法:1、 修改客户端,比如mysqli的query代码,加入定时器,超时则返回;2、修改Mysql中的vio代码,因为mysql的网络处理底层都是经过vio的操作。

PHP如何实现访问MySQL的查询超时

相关学习推荐:mysql教程

PHP实现访问MySQL的查询超时方法:

在libmysql中, 是提供了MYSQL_OPT_READ_TIMEOUT设置项的, 并且libmysql中提供了设置相关设置项的API, mysql_options:

目前只有mysqli支持

<?php
$mysqli = mysqli_init();
$mysqli->options(11 /*MYSQL_OPT_READ_TIMEOUT*/, 1);
$mysql->real_connect(***);

不过, 因为在libmysql中有重试机制(尝试一次, 重试俩次), 所以, 最终我们设置的超时阈值都会三倍于我们设置的值.

也就是说, 如果我们设置了MYSQL_OPT_READ_TIMEOUT为1, 最终会在3s以后超时结束. 也就是说, 我们目前能设置的最短超时时, 就是3秒…

1. 修改客户端,比如 mysqli 的 query 代码,加入定时器,超时则返回

2. 修改 Mysql 中的vio代码,因为mysql的网络处理底层都是经过vio的操作

想了解更多相关学习,敬请关注php培训栏目!

Atas ialah kandungan terperinci PHP如何实现访问MySQL的查询超时. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn