Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 并发数据库连接-如何计算_Mysql_Concurrency_Database Connection_Connection Pooling_Xml Rpc - Fatal编程技术网

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

Mysql 并发数据库连接-如何计算,mysql,concurrency,database-connection,connection-pooling,xml-rpc,Mysql,Concurrency,Database Connection,Connection Pooling,Xml Rpc,我们的mysql主机有并发数据库连接的限制。由于扩大这一限制的代价相当高昂,因此出现了以下问题: 信息: 我有一个web应用程序(由外部程序员开发-以防您可能会对这个问题感到疑惑) web应用程序分布并安装在许多服务器上(每个用户都将其安装在pc上)。这些卫星正在向mysql数据库发送数据。现在卫星正在直接发布到数据库中。为了提高安全性和错误处理,我希望卫星发布到XML rpc(wordpress api),然后进一步发布到数据库中 问题: 这样的api是否会减少并发连接的数量? (现在每个卫星

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

信息: 我有一个web应用程序(由外部程序员开发-以防您可能会对这个问题感到疑惑)

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

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

如果10颗卫星正在发送到一个文件,则该文件将处理数据并将其发送到db->这是一个连接吗?(或处理不同数据集的连接数。)

如果api有一点节流,那么一次只能进行发布会怎么样。这是否只会导致一个连接

非常感谢任何指点!
提前谢谢你

如果您想要改进到数据库的并发连接(因为事实上,创建到数据库的连接是“昂贵的”)。您应该研究如何使用
连接池
(使用Java)

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


(来源:)

无连接的
服务器

  • 使用无连接IPC API(例如,无连接数据报套接字)
  • 与并发客户端的会话可以交错
面向连接的
服务器

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

设计和性能问题

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

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

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

  • 重要的是要释放连接(关闭连接或将其返回到 连接池)。这应该在一个子句中完成(以便完成 无论如何)。请注意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语言使用按值引用 地址。所谓的中间件/对象持久性框架软件 试图缓解这种情况

迪特里希,R.(2012)。Web应用程序架构,服务器端脚本servlet。北帕默斯顿:梅西大学


这取决于您实现集中式服务的方式

如果服务在收到请求后立即将数据发布到mysql,那么如果同时有请求,您可能会有许多连接。但是使用连接池,您可以精确地控制将有多少打开的连接。在极限情况下,您只能打开一个连接。如果存在多个并发请求,这可能会导致争用,因为每个请求都必须等待连接释放


如果服务接收到请求,将它们存储在某个地方(而不是数据库),并将它们分块处理,那么您也可以只有一个连接。但是这种情况要实现起来更为复杂,因为您必须控制对临时数据缓冲区的访问(读写)。

嘿,非常感谢!我一个字也听不懂。。但这也许是件好事。将把这个问题传递给程序员。@user1769562太好了,如果有帮助的话,别忘了将问题标记为已回答,以供将来的观众使用。:)非常感谢你。所以可以肯定地说,如果api(据我所知,它只是服务器上处理抛出数据的一个文件)接收到10个请求,那么它算是一个连接?(1个文件连接到db=1连接)?下面的答案听起来更“正确”,而对于我这个非技术人员来说,你的答案更有意义。现在不确定要选择哪一个。两个答案都涉及同一个重要问题:连接池。因为你没有给出足够的细节,所以很难定义一个合理的解决方案,所以我没有深入研究技术细节。Wordpress确实有一个API,其数据(帖子、评论等)包含xml rpc。这是你要用的吗?你的客户是否在发送帖子、消息等。?你控制你的wordpress环境吗?谢谢-明白了。将阅读有关连接池的信息。是的,由于应用程序用户在wordpress中注册(并且可以在这里管理他们的凭据),我想到使用wordpress api将卫星应用程序连接到db。无论如何,我完全意识到,除了已经提供的答案之外,其他一切都是断章取义的。谢谢你的帮助!