Re: [請益] 網頁負擔,陣列 v.s. MySQL

看板PHP作者 (納格髓)時間16年前 (2009/10/31 23:09), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《Qiqi (潑潑)》之銘言: : 其中該同學把資料存放在Array裡面,用迴圈做表格輸出 : 此時聽到TA說:這樣會造成負擔,到時候資料做在MySQL就好了 : 提問: : 資料做在Array,與資料從MySQL撈出來,哪個負擔大? : 觀點: : 個人想法是,做在Array負擔並不會比較大 : 因為在MySQL撈出資料,需要多一步動作 : 且撈出的資料本身也是存在Array裡面 : 所以TA應該是論述錯了,是嗎? : 題外: : 該堂課教學進度剛接觸PHP,還沒教到MySQL : 一般都是直接重複的表格語法寫死在網頁上 : 該同學會用Array配合迴圈做輸出,已經算是班上裡面厲害的了 : TA沒有稱讚他,反而說這樣做會造成負擔,讓我心裡有點在意 : 雖然不關我的事,我只是個外系同學去資工系修感興趣的課程 : 但我想求解,請板友幫忙解答這有關網頁負擔的問題,謝謝 推文頗多,我作點整理,加上我自己的一些意見,順便賺 P 幣 先澄清一點,你的文章中少聽到一個東西,所以才會造成誤解。 就是「資料是哪裡來的」,也許作業需要的資料是「打在程式碼裡面」。 不過實際在解決問題,資料是可以變動的,所以當然不是打在程式碼裡面。 所以「Array 的內容,是由 MySQL 讀出、放入的」,這是這個問題的前提。 不存在「資料作在Array」這件事,你不可能在每次執行前改程式(練習、測試除外)。 另一點,應該不是說「網頁負擔」,而是「伺服器負擔」。 為什麼呢?想想 PHP 的輸出是 HTML 碼,所以不同的程式,輸出同樣的 HTML, 對瀏覽器的負擔都是一樣的。 所以我們的焦點是在「伺服器作什麼樣的事情會有負擔」上面。 因為你說還沒教到MySQL,所以我省略部分東西不打,單由「記憶體」來說明。 MySQL 的搜尋結果,會放在記憶體裡,所以資料量要越少越好。 所以「查詢條件越精確越好」、「只取得『真正需要』的資料」是原則。 用來減少使用記憶體的資料量。 回到題目,Array使用是會佔用記憶體的。 把同樣的資料,放到 Array,佔用更多記憶體,似乎不是一個好主意。 所以,我猜想所謂的負擔,可能是「放了重複的資料」或「抓出許多不需要的資料」。 至於其它資料庫使用的原則,我想等到你學過之後再講比較有意義。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.168.115.153
文章代碼(AID): #1Ax5CTUb (PHP)
討論串 (同標題文章)
文章代碼(AID): #1Ax5CTUb (PHP)