CloudSQL 与 PostgreSQL 性能非常慢

das*_*asd 5 postgresql query-optimization google-cloud-sql

我想从 BigQuery 迁移到 CloudSQL 以节省成本。我的问题是,与 BigQuery 相比,带有 PostgreSQL 的 CloudSQL 非常慢。在 BigQuery 中需要 1.5 秒的查询在带有 PostgreSQL 的 CloudSQL 上需要近 4.5 分钟(!)。

我有 CloudSQL 和 PostgreSQL 服务器,配置如下:

在此输入图像描述

我的数据库有一个包含 16M 行的主表(RAM 约为 14GB)。

查询示例:

EXPLAIN ANALYZE 
  SELECT 
    "title"
  FROM 
    public.videos
  WHERE 
      EXISTS (SELECT 
                * 
              FROM (
                    SELECT 
                      COUNT(DISTINCT CASE WHEN LOWER(param) LIKE '%thriller%' THEN '0'
                                          WHEN LOWER(param) LIKE '%crime%' THEN '1' END) AS count
                    FROM
                      UNNEST(categories) AS param
                    ) alias
                        WHERE count = 2)

  ORDER BY views DESC 

  LIMIT 12 OFFSET 0
Run Code Online (Sandbox Code Playgroud)

该表是一个列为 的videos表。这里的搜索条件是查找有一个类别恰好两次相似的地方categoriestext[]'%thriller%''%crime%'

此查询的 EXPLAIN ANALYZE 给出此输出 (CSV):link。此查询的 EXPLAIN (BUFFERS) 给出以下输出 (CSV):link

查询洞察图:

在此输入图像描述

内存简介:

在此输入图像描述

对相同表大小进行相同查询的 BigQuery 参考:

在此输入图像描述

服务器配置:链接

表描述:链接

我的目标是让 Cloud SQL 具有与 Big Query 相同的查询速度

das*_*asd 1

对于任何来到这里想知道如何在云 sql 上调整他们的 postgres 机器的人,他们称之为标志,你可以从 UI 执行此操作,尽管并非所有配置选项都可以编辑。

https://cloud.google.com/sql/docs/postgres/flags#console