0

我编写了一些获取连接的 c++ https 服务器 - 对基础进行查询并发送答案。如果我尝试为 index.html 端点发送 GET 查询,我会得到非常好的结果:

在此处输入图像描述

但如果我发送 POST 并连接到 mysql,Requests/sec 非常小:

在此处输入图像描述

我尝试了不同的连接器:mysql、mariadb++、mariadbcpp(在代码示例中)等,结果是一样的。

代码示例:

nlohmann::json PostResult = {};
const char *uri = "tcp://192.168.1.130:3306/test";
const char *user = "root";
const char *passwd = "123";

MariaCpp::scoped_library_init maria_lib_init;

try {
  MariaCpp::Connection conn;
  conn.connect(MariaCpp::Uri(uri), user, passwd);

  std::auto_ptr<MariaCpp::PreparedStatement> stmt(conn.prepare("SELECT a.id, a.msg_id, a.NUMBER, a.sign FROM chiffa a WHERE a.id =1"));
  stmt->execute();

  while (stmt->fetch()) {
    PostResult["id"] = stmt->getInt(0);
    PostResult["msg_id"] = stmt->getString(1);
    PostResult["NUMBER"] = stmt->getString(2);
    PostResult["msg_id"] = stmt->getString(3);  
  }
  conn.close();
}
catch (MariaCpp::Exception &e) {
  std::cerr << e << std::endl;   
}

也许任何人都可以提供帮助,如何增加请求/秒?谢谢!

4

1 回答 1

0

每秒 200 次连接和查询对于简单的实现来说并没有那么糟糕,尤其是当数据库托管在另一个网络边界上时。

我当然不会感到惊讶,它比只返回一些 HTML 的东西快 50 倍。

您的服务器/应用程序应该维护一个连接(或连接池),它始终保持活动状态,并在发出请求时使用它,而不是为每个请求构建一个新连接。

于 2020-01-11T18:52:49.330 回答