作者gpmm (银色)
看板PHP
标题Re: [请益] 替代session的方案
时间Sat Jun 14 13:36:11 2008
※ 引述《Song6Lin (Song6.Lin)》之铭言:
: 主要是执行a.php, 然後向b.php发送要求,b.php回传。
: 想把字典档("dict.dic")读取之後的内容存在某个array之中,
: 希望之後那个array variable一直存在,
: 第二次之後查询就可以快速很多。
: 因为每次都去重新读取档案,再去查询,蛮耗时间的。
: 目前是用了$_SESSION的方式,可以正确读取,
: 第一次载入字典档,第二次查询字典档,结果是正确的,array有保存下来。
: 但是效率....很差....好像是因为$_SESSON['DICTS']太大的关系,
: session_start()就耗了相当大的时间。
因为一般普通的 session 实做,也是将资料写入档案,再从档案读出,
所以和每次手动从 dict.dic 进行读档意思是差不多的,
小弟建议您可以先对字典档做结构化的整理,分散成多个档案,
也许可以提高一些效率。
譬如以 e 开头的前三位字母整理至 dict/e/l3/dict.dic 里
四位、五位、六位及以後也比照办理,
dict/e/c4/dict.dic
dict/e/c5/dict.dic
dict/e/m6/dict.dic
这样的分散方式可以多少让你的档案读取缩小化,
其实还有最狠的,就是把所有文字拆成对应的档案,各自有各自的 dict.dic
像 dict/e/example.dict.dic
dict/e/extra.dict.dic
不过应该档案结构会很肥啊 XDD
如果您的需求是要做动态 input suggestion,
那麽也是最好有一份(或拆开的多份)索引档提供索引比对使用,
当使用者按下 enter 要求查询目标字串时,
才针对该字串做详细解释档案的读取,
其实这种还是建议使用资料库来做比较适合 @@
十几万笔的资料应该不至於效能太差,
而且字典本身还满适合做资料库的(字串就可以做 primary key 了)
如果这样子还是觉得效率不够的话,
建议可以使用 memcache 来实做,应该也会有不错的效能表现。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.168.233.197
※ 编辑: gpmm 来自: 118.168.233.197 (06/14 13:37)
1F:推 Song6Lin:後来我把字典档简单建了一个快速索引,顺畅多了^^ 06/14 14:51
2F:→ Song6Lin:谢谢gpmm大大~~ 06/14 14:51