在PHP中有的时候为了减少数据库的访问,常把有些数据内容以文件缓存的方式缓存到磁盘上。这是一种不错的方法,从某种角度来看。
但是这种问题有一些特别需要注意的弊病,php是以代码的方式缓存对象,一个对象如果有6个属性,你缓存了20条数据,那么你的缓存页面大概会有200行的代码
有的时候在某些页面连续缓存几个表是很正常的,那么你的缓存页面cache.php可能达到上千行的代码。
这个cache.php的代码虽然是以array的方式存在的,但是由于php是行解释模型,当文件的行太多的时候会非常影响性能。
举例来说:4个表*20条数据*10个字段=800 lines
所以这种对象模式的文件缓存是非常不好的
一种替换方案是非对象式的缓存,要么对数据自定义性的编码,要么格式化数据后缓存。
举例来说:
4个表每个表转换成一行数据,那么最多也才4行数据。在程序中利用内存的快速运算来重新处理比读大lines的文件快速很多。
对于这些表需要输出的页面,其实直接缓存为html最好不过了,这样连运算都省掉了。文件IO是很快的
利用缓存可以极大的减少开销,但是要合理和灵活的使用,否则反而走向误区。如果你对于性能方面有优化性的疑惑最好的方案就是多试多分析,慢慢就会找到解决方案