|  |      1shiny      2013-11-22 20:40:39 +08:00 有没有装 apc 这类的扩展? 估计 io 是瓶颈,不来点激进的可能还真解决不了。 | 
|  |      2richiefans OP @shiny apc装了的 但是貌似解决不了这个 | 
|  |      3rwx      2013-11-22 20:45:49 +08:00 把数据分拆成多个小文件按需读取吧,不可能每个请求都需要全部数据吧? 文件缓存对于小数据临时用用还成,一但上了M就是噩梦了,还不如用专门的缓存解决问题来的方便。 | 
|  |      4richiefans OP @rwx现在在考虑 如果把这大文件放到memcache里面呢?不过好想memcache有1mb的限制 | 
|  |      5rwx      2013-11-22 20:54:17 +08:00  1 @richiefans memcache开启压缩的话倒也有希望放下,不过真的不考虑拆分吗?就算放memcache也不能直接一个key全load出来吧? 如果一定要这种模式的话,还是redis吧 | 
|  |      6richiefans OP | 
|  |      7rwx      2013-11-22 21:01:21 +08:00 @richiefans 唔。。最起码redis应该能在一个key里面放下这么多数据 不过呢,无论什么样的编码格式,从redis里读数据的IO和解码生成变量,所用的时间都不会比文件缓存更低。。 我以前一个项目就是比较了这些之后,还是拆成了无数个小文件缓存。。 | 
|  |      8richiefans OP @rwx,刚才简单hack了一下代码,发现多几个查询都要比这样读取大cache 性能好很多 | 
|  |      9yangqi      2013-11-23 00:49:58 +08:00 cache这么大,还是file based,就失去cache的意义了吧。如果设计上没法改变,那至少应该都放到内存里 | 
|  |      10akira      2013-11-23 08:52:21 +08:00 拆分吧,你迟早要做这个事情的。 或者把数据都丢mc/redis里面,需要的什么数据就取什么数据,而不是全部取出来。 | 
|      11opennet      2013-11-24 09:19:50 +08:00 我也遇到了这个问题,使用的文件缓存,等到了10M左右后,还真不如从MYSQL里直接读取的快。 | 
|  |      12richiefans OP | 
|      13opennet      2013-11-24 09:39:56 +08:00 @richiefans 小的全局文件仍然使用文件缓存,其他的还是从mysql里直接读取,试过APC用户缓存和memcahce,好像对我现在的业务没有任何改变。 |