字體:小 中 大 | |
|
|
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
|
|
( 知識學習|科學百科 ) |