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 相同的查询速度
对于任何来到这里想知道如何在云 sql 上调整他们的 postgres 机器的人,他们称之为标志,你可以从 UI 执行此操作,尽管并非所有配置选项都可以编辑。
https://cloud.google.com/sql/docs/postgres/flags#console
| 归档时间: |
|
| 查看次数: |
2815 次 |
| 最近记录: |