带有mysql连接的实时图表问题

时间:2017-01-23 22:07:57

标签: javascript php mysql ajax performance

我想显示一个实时图表,但我没有很好的结果,我使用canvasjs库,我使用mysql连接来做到这一点,但几分钟后收到信息,我有下一个问题:        [Failed to connect the database:[1]

我要显示的数据来自医疗设备,每秒发送大约1000条记录,我可以建立连接以接收信息,但几分钟后此连接丢失,我在PHPMyadmin时出错尝试访问:

enter image description here

如果你能看到我之前向你展示的问题。 这是我用来从数据库中获取信息的查询:

<?php
header('Content-Type: application/json');
$con = mysqli_connect("localhost", "root", "", "db");
if (mysqli_connect_errno($con)) {
 echo "Failed to connect to DataBase: " . mysqli_connect_error();
} else {
$data_points = array();
$result = mysqli_query($con, "SELECT * FROM values where id=10"); 
while ($row = mysqli_fetch_array($result)) {
$point = array("value1" => $row['valueX'], "value2" =>$row2['ValueY']);
    array_push($data_points, $point);
}
echo json_encode($data_points);
}
mysqli_close($con);
?>

如果您有任何建议或评论,请告诉我。 谢谢你的建议。

1 个答案:

答案 0 :(得分:0)

如果没有特别的行动,每秒100次就可以控制。

设置浏览器以允许比较20&#34;客户&#34;。

设置MySQL:

max_connections = 151 -- as it probably currently is
innodb_flush_log_at_trx_commit = 1  -- if using SSDs, else 2

然后,每秒100个Web请求收集数据可能没有问题,导致每秒100个MySQL INSERTs

&#34; 1000&#34;可能会有问题。

同时,您可以获取数千行(在单个SELECT中)以生成实时图表。但是,不要每秒做100次。