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