如何优化此代码以获得更好的速度?

时间:2011-05-15 12:34:11

标签: php database video flv

代码:

<?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 :(得分:0)

不要使用输出缓冲来传输大文件。 php必须将整个文件存储在内存中,并等到它完全读取后再发送给客户端。只需删除ob_*行即可。

答案 1 :(得分:0)

我要说的第一件事是在Id字段上放置索引以减少查找时间...并使用memcache来缓存DB结果 如果您没有对环境的限制,我会放置一个缓存反向代理,如nginx,它使用您的缓存标头缓存HTTP响应,但将用于每个客户端。或者,也有硬件设备为您执行此操作...通常非常昂贵,但