postgresql 如何提高具有6000万行的SQL数据库表的性能

23c0lvtd  于 2023-08-04  发布在  PostgreSQL
关注(0)|答案(1)|浏览(141)

我在PostgreSQL数据库中有一个有6000万行的表。
表格如下:

id varchar PK
cutomerId Integer
orderId Integer
modified timestamp.

字符串
现在,我想创建一个客户和订单数量在特定的一天,例如总结

SELECT customerId, COUNT(orderId) 
FROM orders o  
WHERE DATE(o.modified) = '2023-04-27' GROUP by customerId


在SQL查询UI中返回最多需要5分钟。
有什么办法能让我快点吗?

chhkpiq4

chhkpiq41#

对于这个特定的查询,你可以创建一个这样的索引:

CREATE INDEX ON orders(DATE(o.modified), customerId, orderId);

字符串
与任何性能问题一样,您需要查询执行计划,可以使用
解释(ANALYZE,VERBOSE,BUFFERS,SETTINGS)your_sql_here;
没有这些信息,你只能猜测发生了什么。

相关问题