【发布时间】:2021-02-25 10:04:47
【问题描述】:
我有一个数据库,用于存储来自工厂传感器的数据。该数据库每天每个传感器包含大约 160 万行。我在数据库上有以下索引。
CREATE INDEX sensor_name_time_stamp_index ON sensor_data (time_stamp, sensor_name);
我将每天运行一次以下查询。
SELECT
time_stamp, value
FROM
(SELECT
time_stamp,
value,
lead(value) OVER (ORDER BY value DESC) as prev_result
FROM
sensor_data WHERE time_stamp between '2021-02-24' and '2021-02-25' and sensor_name = 'sensor8'
ORDER BY
time_stamp DESC) as result
WHERE
result.value IS DISTINCT FROM result.prev_result
ORDER BY
result.time_stamp DESC;
查询返回值与前一行不同的行列表。
此查询运行大约需要 23 秒。
在 Aurora 无服务器的 PostgreSQL 10.12 上运行。
问题:除了索引之外,我还可以对数据库执行其他优化以使查询运行得更快吗?
【问题讨论】:
标签: sql postgresql aws-aurora-serverless