先放地址:https://github.com/wwaayyaa/mysql-timeout
php遇到慢sql的时候,一般就是调整php的最大执行时间,mysql的执行时间等配置。
但是有时候想灵活的针对每一句sql做不一样的超时设置。
特别是在cli模式的php中,如果sql操作等待,则当前进程一直阻塞直接影响整个进程。
如果你希望某个页面操作的sql能在短时间内要么返回要么超时,免得页面一直在那里loading...
如果你希望在cli模式下多进程操作数据库,并且每个进程都能不卡死在db上(如workerman的task进程池,专门用于做db等耗时的io操作。但是如果任务量巨大,会导致所有进程繁忙,而此时你db挂了,那么整个task进程池就会一直阻塞,导致整个业务瘫痪,其实博主我就是遇到这个问题了)。
那么可以试试这个包,博主在尝试了几种方式都失败之后。(具体尝试了什么,见 《关于php pdo连接mysql,查询超时问题》)
根据官方mysqli-async所写的。