代码:
<?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分钟。加载视频
如何更快地加载它?
这段代码是否正确?
答案 0 :(得分:0)
不要使用输出缓冲来传输大文件。 php必须将整个文件存储在内存中,并等到它完全读取后再发送给客户端。只需删除ob_*
行即可。
答案 1 :(得分:0)
我要说的第一件事是在Id字段上放置索引以减少查找时间...并使用memcache来缓存DB结果 如果您没有对环境的限制,我会放置一个缓存反向代理,如nginx,它使用您的缓存标头缓存HTTP响应,但将用于每个客户端。或者,也有硬件设备为您执行此操作...通常非常昂贵,但