gpt4 book ai didi

mysql - 并发数据库连接数-如何计算

转载 作者:行者123 更新时间:2023-11-29 08:34:29 25 4
gpt4 key购买 nike

我们的 mysql 主机有并发数据库连接的限制。由于扩大该限制的成本相当高,因此出现了以下问题:

信息:我有一个网络应用程序(由外部编码器开发 - 如果您可能想知道这个问题)。

网络应用程序分布并安装在许多服务器上(每个用户都将其安装在他们的电脑上)。这些卫星正在将数据发送到 mysql 数据库。现在卫星正在直接发布到数据库中。为了提高安全性和错误处理,我希望将卫星发布到 XML-rpc(wordpress api),然后进一步发布到数据库中。

问题:这样的api会减少并发连接数吗?(现在每个卫星都直接连接。就像 1 个用户 = 1 个连接)

如果 10 颗卫星发送到一个文件,则该文件会处理数据并将它们发送到数据库 -> 这是一个连接吗? (或者与已处理的不同数据集一样多的连接。)

如果 API 稍微受到限制怎么办,因为一次只能发帖。这是否会导致只有一个连接?

非常感谢任何指点!预先感谢您!

最佳答案

如果你想提高数据库的并发连接(因为事实是,创建数据库连接是“昂贵的”)。您应该考虑使用 ConnectionPool(example 使用 Java)。

并发数据库连接是如何计算的?

concurrency
(来源:iforce.co.nz)

无连接服务器

  • 使用无连接 IPC API(例如无连接数据报套接字)
  • 并发客户端的 session 可以交错。

面向连接服务器

  • 使用面向连接的 IPC API(例如流模式套接字)
  • 除非服务器是线程化的,否则与并发客户端的 session 只能是连续的。

(Client-server distributed computing paradigm, N.A.)

设计和性能问题

  • 数据库连接可能成为瓶颈。这个问题可以解决通过使用连接池。

  • 可以通过使用PreparedStatements重用已编译的SQL语句而不是声明。这些语句可以参数化。

  • 连接通常不是由 servlet 直接创建的,而是由使用工厂(数据源)创建或从命名服务获取(JNDI)。

  • 释放连接(关闭它们或将它们返回到连接池)。这应该在 finally 中完成子句(以便完成任何状况之下)。请注意,close() 也会引发异常!

        try
    {
    Console.WriteLine("Executing the try statement.");
    throw new NullReferenceException();
    }

    catch (NullReferenceException e)
    {
    Console.WriteLine("{0} Caught exception #1.", e);
    }

    catch
    {
    Console.WriteLine("Caught exception #2.");
    }

    finally
    {
    Console.WriteLine("Executing finally block.");
    }
  • 在开发 OO 和 OO 之间的接口(interface)时,会遇到各种各样的问题。关系型数据库管理系统。这被称为“范式不匹配”​​。主要问题是数据库使用按值引用,而面向对象语言使用按值引用地址。所谓的中间件/对象持久性框架软件试图缓解这个问题。

Dietrich, R. (2012). Web Application Architecture, Server Side Scripting Servlets. Palmerston North: Massey University.

关于mysql - 并发数据库连接数-如何计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15586332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com