看板 Web_Design 關於我們 聯絡資訊
※ 引述《tomin (藍藍紫黃橘 粉灰白綠咖)》之銘言: : ※ 引述《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 值得另外發文討論 其實網頁程式寫法千百種, 走 Framework 玩 Design Pattern 也只是其中某個面向, 每個人都可以從自己的經驗中釐出熟悉的開發方式, 扳著手指細說為什麼這樣用,有什麼強大的優勢, CI 作者也曾經發佈所謂最快的…呃,Framework http://goo.gl/hqJK9 好吧我知道上面是老梗,有機會小弟也可以分享自己在 PHP 一路上的經驗, 從為什麼開始信任 Framework / Template,到怎麼樣自己打造一套。 : : connection 數量有限沒錯,拿完了後面的 http 就要開始領號碼牌等叫號了, : : (也就是一般 client 端網站跑跑跑就是開不起來的其中一種情形) : : 所以網站在達到一個規模之後都會變成多主機的架構(像 Master-Slave* ) : : 可是一旦拓展成架構,SQL 指令數量和異動資料數量這兩樣的影響力就會 : : 被狠狠放大(因為不同主機之間資料同步的關係) : : 有時在 Master 下了一道看似非常簡單的指令, : : 可是 sync 過去的時候竟然在 Slave 上硬生生給卡住, : : 只因為異動的是一個被關聯的資料表,充滿了 index table 需要一併更新, : : 導致其他 JOIN SELECT 的 SQL 全數凍結… : 多主機不是應該比較威嗎,分散運算? : 結果做備援/鏡像用時,反而卡在同步… : 這同步不是即時的吧,也就是 Master 完成一個階段後,再餵給 Slave? : 會不會是因為 Master 累積的量太多, Slave 一時消化不完?XDDDD : 謝謝分享,沒相關經驗,不是很能體會。 (小弟比較熟悉的是 MySQL,所以相關討論談到的都是 MySQL 而已) 會開始用到多主機,絕大多數是因為一台主機已經不夠承載所有連線, 所以會拓展到像 MS、MM、MMM、DRBD、Cluster,MProxy … 等多主機的架構, 其實資料庫同步也是一個超大議題(這條路上走越久越覺得沒一樣事情單純的… orz 舉最簡單的例子 one master - one slave,資料庫完全複製同步, master 吃到任何 INSERT / UPDATE / DELETE,slave 完全照吞一份一樣的 SQL, 同步速度很快 - 只要沒有任何外來因素產生延遲的話。 所以你說多主機是不是要比較威?在這個例子下答案是否定的 XD 它最大的意義只在於分散 SELECT 連線數,和分散運算完全扯不上關係, 而且資料庫系統最大的痛處(或壓力)常常都不在於運算,而是 IO, 當然還有其他很多不同的架構是可以提昇效能的, 像是在多主機環境上對資料庫做縱切(分table)或橫切(超級難的分data模式)… MySQL 不像 MsSQL 要花錢買授權才能使用,所以也較少有廠商級的 solution, 以後在老大哥的庇蔭之下會不會有什麼驚人之舉就不知道了 : : 利用 FK 一次寫入多個 table,有沒有例子可以介紹一下呢? o_oa" : 只是在說關聯資料表而已 比如將table a 某個人的cname值改成"xxx" : 其他table b, table c有設FK的cname 也會同時被改成"xxx" 呃,這個小弟有聽沒有懂 ( ̄□ ̄|||) 是在 MsSQL 的環境下嗎? : : 這個當初有想過,可是實際上用筆移動幾次後, : : 發現已經快 SELECT 不出來順序了 XD : 嗚 中看不中用 跑個幾次就經不起考驗了? T_T : 不過它的設計理念 應該還可以再多加發揮 : 就是原來的東西不要動 加上別的東西去影響原來的東西  : 並組合成新的東西 (蛤~什麼東西?XD) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.160.173.110