網路城邦

上一篇 回創作列表 下一篇   字體:
PHP 效能最佳化提示 - Google Webmaster
2013/02/21 09:25:57瀏覽382|回應0|推薦1
◆使用緩存 - 使用 Memcache,若有使用 Template,也要有支援 Template cache,e.g. Smarty

◆使用輸出緩衝

我自己的心得: 提早讓使用者看到內容,不過以目前流行的 MVC 架構來說,這個得要在做些改變,應該要改成 MVP 架構比較合適.

◆避免書寫幼稚的getters和setters方法

物件若再包一層 setName()、getName(),會比直接 $x->name 慢上一倍 - 可見此範例: http://pastie.org/638732

◆不要無理由的複製變數

如果一個用戶插入512KB的字元值到一個textarea欄位。這樣將導致耗用近1MB的內存。

若沒有特別理由,不要再多增加變數,e.g.

$description = strip_tags($_POST['description']);

echo $description;

請直接

echo strip_tags($_POST['description']);

◆避免在一個循環中執行SQL查詢

避免讓 SQL 放在迴圈中,ex:

foreach ($userList as $user) {

$query = 'INSERT INTO users (first_name,last_name) VALUES("' . $user['first_name'] . '","' . $user['last_name'] . '")';

mysql_query($query);

}

上述程式會執行的語法:

INSERT INTO users (first_name,last_name) VALUES("John","Doe");

建議改用:

$userData = array();

foreach ($userList as $user) {

$userData[] = '("' . $user['first_name'] . '","' . $user['last_name'] . '")';

}

$query = 'INSERT INTO users (first_name,last_name) VALUES' . implode(',',$userData);

mysql_query($query);

上述程式會執行的語法: (先把要寫入的先都組起來,在一併丟入 MySQL 執行)

INSERT INTO users (first_name,last_name) VALUES("John","Doe"),("Jane","Doe")...

詳細可見: MySQL INSERT Syntax

http://dev.mysql.com/doc/refman/5.5/en/insert.html
( 知識學習科學百科 )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=maxmas&aid=7324634