Home  >  Article  >  Backend Development  >  关于PHP优化速度的问题,文件缓存,影响会大吗?

关于PHP优化速度的问题,文件缓存,影响会大吗?

WBOY
WBOYOriginal
2016-06-23 14:22:08819browse

缓存 优化 php 数据

由于条件有限,没有MemCache,但是很多地方如“地区信息、各种树型分类、全局菜单链接”等等信息,直接从数据库取的话,实在实在太慢了,而且一个页面下来语句太多了,所以采用了一个办法,就是把这类数据直接保存到硬盘下,要的时候就直接从硬盘读取。

项目做得差不多了,发现用到这类方法的地方好像挺多,现在就是胆心到时候正式上线的时候,过多的读取会不会直接就挂了?

有没有这方面有经验的,给下回复。当前的话,我测试的速度还是蛮快的,但是毕竟没有经过压力。

回复讨论(解决方案)

自己搞个工具做下压力测试, 看下IO撑得住不。搞个缓存很快啊,随便上一个就可以了,又不会难

没有MemCache可以用mysql建立内存表。或者加大mysql缓存也管用。

最好的就是读内存 就是缓存放在内存中 具体就是ls说的  而文件放在硬盘上 - - 感觉和读数据库 五十步 一百步的区别 硬盘是个瓶颈啊

由于条件有限,没有MemCache,但是很多地方如“地区信息、各种树型分类、全局菜单链接”等等信息,直接从数据库取的话,实在实在太慢了

最好还是优化你的查询和程序。

我??描述一下我的做法:
我的网站有一个庞大的分类表,这个分类表分为多个层次,每一个层次都存储了该分类下有多少条新闻.
为了防止每次都要重新读取分类表,所以我就建立了一个function,这个function只有在添加新闻的时候才会被调用,他的作用就是用来读取每一个分类,并计算每一个分类下都有多少个新闻,计算完毕之后就把分类重新组合成array,然后用这个function把我的array存入一个php文件内,这样前台在显示的时候只需要require这个php文件进来然后遍历array输出即可,就不需要重新读数据库了.
也就是提前把数据库中的分类读出来整合成array存入一个php文件里,显示的时候就require此php文件就行了,不需要每次读取数据库.

项目做得差不多了,在这种情况下,你如果不想对代码大动干戈,最好的方法加中间缓存层,如果没有涉及到server集群,你可以开启server端eAccelerator、apc、xcache缓存opcode开启,如果是server集群,就需要在反向代理上做文章了

由于条件有限,没有MemCache。
这句不是很清晰,memcache也不需要服务器有多高的配置。
还有,按照你现在的读文件做法,可以用jmeter等来测压力测试,压力测试的工具很多。
io及时现在没问题,随着访问增长,瓶颈还是它。。。
不管怎么改,建议不要大改动,不影响现在功能。

可以再第一次取出的时候写成文件存储,之后再读取的时候直接读取文件就行了,如果数据有修改就重新写入,很多框架都是这么做的

内存表足矣...

我一般都是文件存储 加上memcache 都用 看数据内容

你可以用js 做 本地缓存

建议采用mysql查询缓存。这种方式可用性最高,灵活、透明。这个需求,性能没有必要很苛刻。

我的观点是,memcache这个东西适合用于两个会话(页面)之间交换数据,不适合用于缓存。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn