首页 > 解决方案 > 频繁的数据库条目 - PHP、MySQLi

问题描述

我正在运行几个使用 ffmpeg 分段的直播和视频流。我为每个云服务器运行一个频道。我有一个更强大的中央服务器,用于执行各种任务,其中一项任务是摄取主 m3u8 播放列表并将片段名称和创建时间存储在数据库中。

目前为 8 个频道大约每 8 秒创建一次片段。这意味着我每 8 秒调用一次 playlist.m3u8(位于远程服务器上)并将每个段的信息存储在数据库中。

这使我可以快速创建视频(从时间和时间之间的频道 1 中选择)。

但是,一两次数据库似乎停止工作,我需要修复它才能获取新信息。

我在想,我是不是打得太狠了?有没有更好的办法?

我的语句打开一个新连接,检查条目是否已经存在,如果不存在,它将进入它,然后关闭连接。

我每 8 秒每个频道执行一次。

这感觉可能会更好,但我不太清楚如何。我应该/我可以保持连接打开吗?也许它根本不是问题。

有人有什么建议吗?

如果您需要更多信息,请询问。

询问:

$conn = new mysqli($servername, $username, $password, $dbname);
$eight =  date('Y-m-d', strtotime("-8 day"));
$vq = "SELECT *  FROM `".$channels['channels'][$id]['fo_id']."`
                   WHERE `segment_name` = '".$oline."'";

$query = mysqli_query($conn, $vq);

if(mysqli_num_rows($query) == 0){
$sql = "INSERT INTO `".$channels['channels'][$id]['fo_id']."`
        (`segment_name`, `server`, `created`, `lenght`)
        VALUES
        ('".$oline."', '".$channels['channels'][$id]['server']."',
         '".date("Y-m-d H:i:s", $date)."', '".$otime."')";
$conn->query($sql);
}

$query = mysqli_query($conn, "DELETE FROM `".$channels['channels'][$id]['fo_id']."`
                           WHERE `created` < '".$eight." 00:00:00'");

$conn->close();

标签: phpmysqldatabaseperformance

解决方案


推荐阅读