我想显示实时图表,但没有得到好的结果,我正在使用canvasjs库,并且使用mysql连接来执行此操作,但在收到信息几分钟后,我遇到了下一个问题: [
我想要显示的数据来自医疗设备,每秒发送大约 1000 条记录,我可以建立连接来接收信息,但几分钟后该连接丢失,当我尝试访问:
如果您看到的问题与我之前向您展示的问题相同。 这是我用来从数据库获取信息的查询:
<?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);
?>
如果您有任何建议或意见,请告诉我。 谢谢指教。
最佳答案
无需特殊操作,每秒 100 次可能是可以管理的。
将浏览器设置为允许 20 个“客户端”。
设置 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 INSERT
。
“1000”可能会有问题。
同时,您可以获取数千行(在单个 SELECT
中)来生成实时图表。但不要每秒执行 100 次。
关于javascript - 与 mysql 连接的实时图表问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41816576/