服务器设置以托管Google Analytics(分析)等工具



我正在开发类似于Google Analytics(分析)的分析工具。这将在数据库中存储关键字,访问和页面。

因此,数据库可以很快增长,因为我想让很多人使用它。

我应该如何设置数据库?一个数据库,用于所有帐户和所有正在监视的网站?或者最好每个帐户拥有一个数据库?

另外,我计划从一台专用服务器开始,但我敢肯定我将来需要多个服务器,因此我必须构建它。

我也知道,如果我为每个帐户执行多个数据库,那么当应用程序的模式会更改时,我将不得不在所有帐户上升级脚本。

您打算使用哪种数据库?关系(PostgreSQL,MySQL)和" Nosql"(Mongodb,Couchdb)

之间有很大的区别

我只会在关系方面谈论postgresql,因为它是我唯一有经验的数据库。

首先,我将所有内容都保留在一个数据库中。每个帐户使用数据库没有好处。

第二,您应该绝对确定自己会超越一台计算机。鉴于您将要处理的应用程序类型比读取要多得多,因此主奴隶复制仅适用于高可用性,而使用PostgreSQL的多主掌握复制也不容易。

从我上次的研究中,最不痛苦的方法是使用诸如Postgres-XC之类的工具,该工具旨在写入量表,但我不知道它如何准备生产。

另一个解决方案是使用Bucardo或SkyTools之类的工具。没有Skytools的经验,但是去年我要让Bucardo上班很麻烦。

最后一个解决方案是进行碎片。天真的碎片方式是做类似的事情 shard number = id % 10。但是,每当添加/删除碎片时,都需要重新平衡群集。它要求您编写您的应用程序" shard-ware",以便将查询引导到正确的碎片。

无论如何,就像我之前所说的那样,请确保您需要先碎片/聚类。

p>

我将在Vincent的答案上展开一点。

,至于碎片,我们在PL/代理方面拥有良好的经验。通过碎片,您可以无问题地超过单个机器(读或写)。

至于SkyTools的Replication Londiste,非常容易设置和使用。随之而来的是PGQ,Postgres的消息传递解决方案相当不错。

最新更新