我正在为客户构建一个带有 Web 前端的 MySQL 数据库。客户及其员工每天都会使用这个 Web 应用,每年创建几千到几十万条记录。我刚刚接手了第二个客户,他希望拥有同样的产品,并且每年可能会创建相同数量的记录,甚至更多。
未来我希望能够获得更多客户。在未来几年内,我可能会为 5 个不同的客户运行多达 5 个数据库和 Web 前端,所有这些都需要严格的安全性,同时每年可能创建数百万条记录(累计到所有数据库)。
我想使用 Amazon 的 EC2 服务来运行所有这些,但很难决定运行哪种类型的实例。我不确定我是否应该拥有几个不同的 Linux 实例(每个客户端一个),或者运行一个“大型”实例来管理所有客户端的数据库和 Web 前端。
我知道硬件配置与手头的任务相当相关。Web 前端将使用 JQuery 使 MySQL 查询“漂亮”,我可能会对数据进行一些绘图(再次使用 JQuery)。前端将使用 SSL 来确保安全,我知道这会增加网络速度的开销。
我想听听你对这种情况的看法。
谢谢
答案1
如果没有查询的运行时特征、特定的性能期望等,这个问题几乎不可能回答。所以我只能说:从小处着手,根据需要扩大规模。我也不太清楚你说的“每年数百万条记录”具体是什么意思,但即使使用普通的硬件,你也应该能够毫不费力地推动 10-30K 笔交易/秒(根据 sysbench 的测量)。
至于为每个客户设置不同的服务器?这取决于您持有的数据类型。如果数据不是很敏感,可以省点钱,在同一台服务器上运行多个数据库/前端,然后根据需要拆分较大的数据库/前端。但是,如果您有敏感数据,运行单独的服务器可能不是个坏主意,这样如果一台服务器被盗用,您就不会失去整个数据库。
话虽如此,您的问题确实很模糊,而且没有什么可回答的。
编辑:除非您正在推送大量数据,否则 SSL 开销完全可以忽略不计。