看板 PHP 關於我們 聯絡資訊
先說,我沒寫過什麼正規 PHP 程式 就當我是來騙文章數,聽聽就好 ※ 引述《eiping (一平兄)》之銘言: : 這個函數這樣做法,跟我之前的其實完全一樣,只要用到一次函數,就會讀取一次資料庫 : 我希望的做法是,讀取一次資料庫,把資料放進陣列,之後下面都讀取陣列,就不用每次 : 都讀取資料庫,從記憶體(陣列)讀取資料,總是比從硬碟(資料庫)來的快吧?! : 還是其實原先的做法沒錯,當頻繁讀取某個資料表取得對應,MYSQL會把資料放進記憶體 : 去存取,所以我不用考慮這些事情,就照原先的做法去做就好~? 用 Java 連 database,自己用 JDBC 連 通常要注意哏是 connection open 緩慢的問題 然後套個 connection pool 之類的就沒事了 PHP 有沒有這方面的問題,我不太清楚 [死] 如果單純看「下 select 語法」→「DB 回傳資料」這段的時間 (也就是不考慮 open connection 的速度) 嗯... 這時間真的很重要嗎? 我現在手上的案子,程式要在一台據說不是很快的機器 用 browser 作 UI 操控實際硬體作動(下略) 然後因為 ooxx 因素,所以要在上頭塞會員資料提供查詢 那麼要是實際 online 的話,資料數量以萬筆為單位很正常 我就問了:這樣查詢速度沒問題嗎? 老人前輩說:二十年前用 386 跑 dBase query 幾十萬筆資料也可以在一秒內反應完畢 我:...... 報告是 當然,如果好幾個 table 要 join 來 join 去,這就難講 (可以作 view 之類的鬼玩意來協助?) 反過來說... 你今天真的要省,那就是要用類似 singleton 的方式 讓這個陣列資料在整個系統(而不是單一個 PHP 的 page cycle)都用得到 這樣才能建一次就用好多次... 我不確定 PHP 做不做得到,但是很明確的這會有兩個哏 1. 如果資料量很小,db 找起來也不會花太久 人類真的敢覺得出來差異嗎? 2. 如果資料量很大,你不擔心 memory resource 被吃光光嗎? (Java GC 表示:) 然後你還得保持陣列跟 database 資料的同步性...... blahblah 還不如像 g 版主說的方向,找 database cache(是這樣叫的嗎?) 或是...... 奔雷手文泰來: 插到了以後在說吧,自然有法律會制裁他, 你們兩個敢快打好不好,我們都快悶死了 ... -- 錢鍾書: 說出來的話 http://www.psmonkey.org 比不上不說出來的話 Java 版 cookcomic 版 只影射著說不出來的話 and more...... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.25.0.70
MOONRAKER:Premature optimization is the root of all evil. 05/23 16:08