Re: [請益] 替代session的方案
※ 引述《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)
推
06/14 14:51, , 1F
06/14 14:51, 1F
→
06/14 14:51, , 2F
06/14 14:51, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章