Re: [請益] 替代session的方案

看板PHP作者 (銀色)時間17年前 (2008/06/14 13:36), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《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
謝謝gpmm大大~~
06/14 14:51, 2F
文章代碼(AID): #18KrZCXn (PHP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #18KrZCXn (PHP)