看板 Web_Design 關於我們 聯絡資訊
※ 引述《gpmm (銀色)》之銘言: : persistent connection 也太暴力了… orz : 這種小弟都習慣從設計模式上處理,Factory 也好 Singleton 也好, : 只要確保一隻 php 只會開啟一個 db connection, : 盡量縮短佔用時間(從 SQL 數量和資料異動量著手), : 然後看能不能把 ORM 一起做掉(咦) 用pattern是滿好的 不過我滿懷疑pattern用於web app的效用 像Singleton  應該是只能確保同一個request 是用同一個連線 同一個人 「重新整理」同一隻php 就會是不同的request 就會產生不同的instance 就會是不同的連線 其他人開同一隻php 也是不同的連線 同樣用pattern 感覺web app與一般程式語言的用法不同 需要有所調整 關於pattern如何用於web app 值得另外發文討論 : connection 數量有限沒錯,拿完了後面的 http 就要開始領號碼牌等叫號了, : (也就是一般 client 端網站跑跑跑就是開不起來的其中一種情形) : 所以網站在達到一個規模之後都會變成多主機的架構(像 Master-Slave* ) : 可是一旦拓展成架構,SQL 指令數量和異動資料數量這兩樣的影響力就會 : 被狠狠放大(因為不同主機之間資料同步的關係) : 有時在 Master 下了一道看似非常簡單的指令, : 可是 sync 過去的時候竟然在 Slave 上硬生生給卡住, : 只因為異動的是一個被關聯的資料表,充滿了 index table 需要一併更新, : 導致其他 JOIN SELECT 的 SQL 全數凍結… 多主機不是應該比較威嗎,分散運算? 結果做備援/鏡像用時,反而卡在同步… 這同步不是即時的吧,也就是 Master 完成一個階段後,再餵給 Slave? 會不會是因為 Master 累積的量太多, Slave 一時消化不完?XDDDD 謝謝分享,沒相關經驗,不是很能體會。 : : 用同一個連線比較省:P : : 省還要更省 讀取db次數最好介於0~1次  : : 寫入db應該也盡量不超過1次 (善用外鍵FK 可一次寫入多個table) : 利用 FK 一次寫入多個 table,有沒有例子可以介紹一下呢? o_oa" 只是在說關聯資料表而已 比如將table a 某個人的cname值改成"xxx" 其他table b, table c有設FK的cname 也會同時被改成"xxx" : : 都只query view,更新都只更新原table的change欄位一次(一個sql指令), : 這個當初有想過,可是實際上用筆移動幾次後, : 發現已經快 SELECT 不出來順序了 XD 嗚 中看不中用 跑個幾次就經不起考驗了? T_T 不過它的設計理念 應該還可以再多加發揮 就是原來的東西不要動 加上別的東西去影響原來的東西  並組合成新的東西 (蛤~什麼東西?XD) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.122.76.198