Как я могу оптимизировать этот код для лучшей скорости? - PullRequest
1 голос
/ 15 мая 2011

Код:

<?php $local_id = $_GET['id'];

mysql_connect("localhost", "root", "") or die("Could not connect: " . mysql_error());
mysql_select_db("database");
$sql = mysql_query("SELECT * FROM `videos` WHERE `id` = ".$local_id." ");
while($row = mysql_fetch_array($sql)){$file = $row["file_url"];}

header("Expires: Mon, 20 Dec 1980 00:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Pragma: no-cache");
header("Content-Type: video/flv");

readfile($file); ?>

Файл является .flv, но занимает ~ 1 мин.загрузить видео

Что я могу сделать, чтобы загрузить его быстрее?

Правильно ли указан этот код?

Ответы [ 2 ]

0 голосов
/ 15 мая 2011

Первое, что я хотел бы сказать, это поместить индекс в поле Id, чтобы уменьшить время поиска ... и использовать memcache для кэширования результатов БД. Если у вас нет ограничений на среду, я бы поставил обратный прокси-сервер для кэширования, такой как nginx, который кэширует HTTP-ответ с использованием ваших заголовков кэширования, но будет для каждого клиента. В качестве альтернативы есть аппаратные устройства, которые делают это для вас ... обычно довольно дорого, хотя

0 голосов
/ 15 мая 2011

Не используйте буферизацию вывода для передачи больших файлов.php должен хранить весь файл в памяти и ждать, пока он полностью не прочитается, прежде чем передать его клиентуПростое удаление ob_* строк должно работать.

...