Re: [請益] 網頁負擔,陣列 v.s. MySQL
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章