随着考虑的越来越周全,cos-html-cache对数据库的查询越来越多,虽然这个不影响阅读者的效率,但是管理人员在后台批量更新缓存的时候问题就出来了,特别是对于bluehost和hostmonste这种对CPU执行时间有限制的虚拟主机,问题就更加明显了,如果网络速度慢或者批量更新的数目太大,就会造成CPU超标,所以如果你还在使用cos-html-cache,请更新的时候一次少更新点,50篇一般不会出问题的!
Bluehost的超标一般都在Mysql查询的返回时间上,所以,下一步就得要优化查询,首先得优化的就是在查询获取数据的过程中,别去执行socks open,因为socks连接都有一个延迟时间。当前的执行流程如下:
重建缓存:
查询数据库,条件是post或者page{
如果page则利用index.php?page_id= id否则 利用index.php?p=id来获取html输出
利用socks open获取输出(这里建立链接会有时间延迟)
根据ID,得到其永久链接(这里wordpress自己也产生了SQL查询)
写入该文件
}
查询完毕
从上面我们可以看出,在执行查询数据循环的时候,循环体内出现了等待和再次查询,所以SQL执行时间大大加长,以至于超过30秒。
因此下一步做改进,改进如下
查询数据库,条件是post或者page{
将post或者page的id放置在数组变量1里面
}
循环变量1{
获取permanlink永久链接,将永久链接写入到数组变量2//因为这里有sql查询
}
循环变量2{
获取缓存(采用成熟的类来完成),写入缓存
}
查询完毕
因此下一个版本的cos-html-cache在后台执行的效率会大大的上升,当前,对于访问者了说,几乎没有任何变化。
该日志未加标签