远程数据库服务器所需的最小带宽

我想为我的公司build立一个小的仓储申请。 我们有一个中央仓库,分布在全国8个销售点。 他们坚持一个内部的解决scheme。 我想build立一个中央mySQL数据库Linux服务器,并有分支机构连接到它来存储销售。

从分支机构查询数据库将是最低的,也许每小时10。 但是,我需要所有的分支机构能够每五分钟最多一次在中央数据库中存储每个销售数据(产品ID,客户ID)。

我的问题是我可以摆脱简单的24mbps / 768kbps DSL线路? 如果不是什么带宽要求? 如果需要,我可以依靠负载平衡路由器来组合额外的线路吗? 你能提出一些服务器硬件规格吗?

好,让我澄清这一点。 我所需要的是在销售商品时存储数据(prodctID,itemsSold)并在其他商店中检索可用性。 例如,将其他分公司的某些产品的数量返还给中央仓库,或者让其他分公司送货。 我每隔一分支(7分支 – 7行)猜测一行(branchName,itemQuantity),每当一个分支超出某些东西。 我认为发送的数据是最小的,但我不知道是否有开销。 我怎么估计?

只有您可以通过根据查询和/或事务的数量以及每个查询和/或事务的数据集的大小来测量或估计带宽使用来回答这个问题,再乘以特定时间段内的查询和/或事务的数量的时间。

由于您不会传输太多的数据,因此您不需要太多的带宽。 另外使用fe SSH隧道压缩可以帮助。

根据我的经验,延迟是远程(DB)应用程序的一个更大的问题。

您也可以在集群式解决scheme中设置本地MySQL实例。 传播更改将由数据库本身asynchronouspipe理。

鉴于您的项目范围很窄,实际上应该相当简单地找出您将要消耗的带宽types以及需要花费的时间。

发送查询

这是相当简单的计算。 我们假设这是你的查询:

SELECT COUNT(*) as Qty, Branch FROM ProdsTable GROUP BY Branch ORDER BY Branch 

这是79个字符。 79个字符= 632个字节,您有一个24Mb入站连接,以便在成为带宽受限之前,查询将需要24*1024*1024/632 1024/632个同时查询(39819)。 我不能告诉你需要多长时间才能确定,因为:

  • 它的可用带宽肯定是由客户端连接的上行速度决定的
  • 还有额外的标题和身份validation与查询发生,特别是如果您需要在发送查询之前启动连接

但它应该是相当快的。

检索数据

我们假设:

 productID CHAR(20) itemsSold INT 

这是每行总共20 + 4个字节。 7行= 7*(20+4) = 168字节。 你有768Kb的出站带宽,所以你可以同时发送4681个这样大小的请求,然后才开始在带宽结束时被压缩。

现在忘记我刚刚说的一切

因为除此之外还有更多。 正如我已经提到的那样,authentication开销,启动连接,然后你有DSL链路上的延迟,可能的竞争比问题,并且因为它不是在交换networking上,所以有一堆TCP重新可能每个查询都需要assembly和重新传输,这会显着影响感知速度。

要真正知道的唯一方法就是试试。

带宽需求不仅与查询频率有关,而且与查询输出和表的大小有关。 例如,一个查询可能会返回一个单行,另一个查询可能会返回数千行。 因此,除非您有大概的数据大小和查询types,否则没有具体的答案。