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

  • 来源:网络
  • 更新日期:2020-08-27

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

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

【相关学习推荐: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培训栏目!