PHP實現(xiàn)訪問MySQL的查詢超時方法:1、 修改客戶端,比如mysqli的query代碼,加入定時器,超時則返回;2、修改Mysql中的vio代碼,因為mysql的網(wǎng)絡(luò)處理底層都是經(jīng)過vio的操作。
【相關(guān)學(xué)習(xí)推薦:mysql教程】
PHP實現(xiàn)訪問MySQL的查詢超時方法:
在libmysql中, 是提供了MYSQL_OPT_READ_TIMEOUT
設(shè)置項的, 并且libmysql中提供了設(shè)置相關(guān)設(shè)置項的API, mysql_options:
目前只有mysqli支持
<?php $mysqli = mysqli_init(); $mysqli->options(11 /*MYSQL_OPT_READ_TIMEOUT*/, 1); $mysql->real_connect(***);
不過, 因為在libmysql中有重試機(jī)制(嘗試一次, 重試倆次), 所以, 最終我們設(shè)置的超時閾值都會三倍于我們設(shè)置的值.
也就是說, 如果我們設(shè)置了MYSQL_OPT_READ_TIMEOUT為1, 最終會在3s以后超時結(jié)束. 也就是說, 我們目前能設(shè)置的最短超時時, 就是3秒…
1. 修改客戶端,比如 mysqli 的 query 代碼,加入定時器,超時則返回
2. 修改 Mysql 中的vio代碼,因為mysql的網(wǎng)絡(luò)處理底層都是經(jīng)過vio的操作
想了解