Как сделать 100% высокопроизводительный ресурс? Универсального ответа на этот вопрос на сегодняшний момент не существует, но можно сформулировать некоторое количество правил и определить ключевые моменты, на которые необходимо обращать внимание при решении данной задачи.
1. Грамотное оформление кода PHP и др., т.е. программист должен иметь определенную квалификацию. Во-первых, чтобы не допускать ошибок, и придерживаться соответствующих стандартов программирования. К примеру, можно написать в теле скрипта n-e количество раз вычисления какого-либо выражения (или организации соединения с БД MySQL).
…
mysql_connect (host, user, pass)
$result=mysql_query ($query);
mysql_result ($result, 0, 0);
…
// еще раз вызов
…
Когда правильнее было бы создать класс.
class DB_mysql {
…
public $resource;
public $query;
…
public function connect () {
…
};
public function execute () {
$this->result=mysql_query ($this->query);
};
…
};
…
tst_mysql = new DB_mysql ();
tst_mysql->connect ();
…
2. Работать с кэшированием. Это является одним из основных мероприятий, которое позволит добиться высоких показателей по разгрузке системы. примеру, зачем каждый раз загружать клиенту список новостей в течение дня, если новости обновляются через день.
3. Грамотная работа с БД. Грамотное выполнение запросов и выводов результатов. К примеру, одной из частых ошибок программистов является вывод запроса на список чего-либо.
SELECT * FROM table;
И далее
For ($i=0; $i<$num_rows; $i++)
If ($i>$a &&$i<$b) echo $data [$i];
Правильнее было бы сформулировать запрос как:
SELECT * FROM table LIMIT $a, ($b-$a); // используем ключевое слово LIMIT
4. Настройка оптимальной производительности, тестирование. Для чего это нужно? Это нужно для того, чтобы найти самые узкие места в программе, отловить неявные ошибки и др.
5. Использование возможностей ВЕБ 2.0 (Ajax). Вместо пересылки всей страницы, можно клиенту отправить только самую необходимую информацию.
6. Есть еще один способ повысить производительность – создание модулей для php на C. Т.к. скриптовый язык всегда выполняется медленнее, то таким образом можно повысить быстродействие в 10-100 раз. Но данный вопрос относительно сложен и не всегда есть возможность его реализовать.
На рисунке ниже показаны по пунктам участки взаимосвязи клиента с веб сервером (один из возможных вариантов организации данной структуры).
Структура работы веб приложений на физическом уровне
Рис.1 Структура взаимодействия клиента с ресурсом http://www.MySite.ru
