在具有外部DB连接的PHP websocket中,性能是如何工作的?

在具有外部DB连接的PHP websocket中,性能是如何工作的?,php,websocket,pdo,Php,Websocket,Pdo,上下文。我一边有一个web服务器,另一边有另一个IP服务器上的数据库(BD)。我用这个库构建了一个PHP websocket(WS)。其思想是,浏览器根据数据库中的现有数据逐秒显示更新的信息。我配置了WS,以便客户端(通过JS)每秒向服务器发送一条消息,以便从DB检索最新数据并在浏览器中显示: let conn = new WebSocket("ws://localhost:8080/"); conn.onopen = function (e) { setInterv

上下文。我一边有一个web服务器,另一边有另一个IP服务器上的数据库(BD)。我用这个库构建了一个PHP websocket(WS)。其思想是,浏览器根据数据库中的现有数据逐秒显示更新的信息。我配置了WS,以便客户端(通过JS)每秒向服务器发送一条消息,以便从DB检索最新数据并在浏览器中显示:

let conn = new WebSocket("ws://localhost:8080/");
conn.onopen = function (e) {
    setInterval(function() {
        conn.send('myrequest');
    }, 1000);
};
在本地开发模式下,一切都能完美运行。但我怀疑我做得不好,在生产中,这将是性能方面的一场灾难,仅仅因为以下几点

问题。我将DB连接放在构造函数中,并放在onOpen()方法中,通过该方法,我实现了在WS的生命周期中有一个到DB的连接。那很好。问题在于,在onMessage()事件中,我向外部数据库发出请求:

$stmt = $this->pdo->prepare('SELECT ...');
if ($stmt->execute()) {
    if($stmt->rowCount()>0) {
        // ...
    }
}
$stmt->closeCursor();
我从未摆脱对DB的多个请求:
$stmt->execute()
,就像DB在另一台服务器上一样,这让我假设当web服务器在一边而DB服务器在另一边时,websocket非常无用,是吗?如果是这样的话,在这里不影响性能的最佳方式是什么

欢迎任何评论