创建一个高可用和大量可用的数据库

Creating a high available and heavy usable Database

目前,我有一个由后端、前端和数据库组成的应用程序。 Postgres 数据库有一个 table 大约有 6000 万行。 此 table 具有另一个 table 的外键:categories。因此,如果要计算——我知道这是数据库中最慢的操作之一——来自特定类别的每一行,在我当前的设置中,这将导致 5 分钟的查询。目前,数据库、后端和前端仅 运行 在 VM 上。

我现在已经将后端和前端容器化,我想在 Google Kubernetes Engine 中启动它们。

所以我的问题是,如果您还使用容器数据库并让 Kubernetes 做一些负载平衡工作,我的查询性能是否会提高,或者我应该使用 Google 的 Cloud SQL ?有人有这方面的经验吗?

will the performance of my queries go up if you also use a container DB

只有当节点(更大的节点)的容量大于您当前的节点时,原始性能才会提高。如果您使用与 kubernetes 节点相同的节点,它将不会上升。在这种情况下,您不会从容器中获益,如果您 运行 在 Kubernetes 中更新数据库软件可能会更容易一些。这里有很多因素在起作用,包括您使用什么磁盘进行存储。 (SSD、磁性、集群文件系统?)。

假设您的目标是通过在没有多少查询发送到您的数据库时利用该容量来最大化集群中的资源,那么 Kubernetes/containers 可能是一个不错的选择。 (但这不是原来的问题)

should I use Google's Cloud SQL

我使用 Cloud SQL 的唯一原因是,如果您想卸载管理 SQL 数据库。除此之外,在 GCE 上相同大小的实例中,您将获得与 运行ning 相似的性能数字。