News for hackers. Stuff that matters.
Re:Ask HN: 120M rows Postgres – how can I speed up queries? by dbnewbie on Thursday November 07, 2019 @11:29AM (#21474632)
Thanks a ton for the help, I will take a look into what we might be able to do in terms of adding a materialized aggregate view!
Re:Ask HN: 120M rows Postgres – how can I speed up queries? by gigatexal on Thursday November 07, 2019 @02:22PM (#21476390)
You’ll get the most benefit from pre-aggregating not for a specific query but in a general way. Sum orders group by user in a view and then use triggers to update that view. That way to get the orders for a given user it’s a simple lookup and all the calculation is done. And this way you can build up meta reports from these general aggregates.
Re:Ask HN: 120M rows Postgres – how can I speed up queries? by dbnewbie on Thursday November 07, 2019 @02:56PM (#21476716)
Ok awesome, and thanks again!
Re:Ask HN: 120M rows Postgres – how can I speed up queries? by gigatexal on Thursday November 07, 2019 @03:07PM (#21476816)
Just to be super clear don’t use the triggers to rebuild the view every time but merely to add one to the sum’d account when a row matches — I wasn’t sure I made that clear. Good luck! And do put up a blog post or something if it works out
Re:Ask HN: 120M rows Postgres – how can I speed up queries? by dbnewbie on Thursday November 07, 2019 @06:46PM (#21478660)
OK that makes sense, and I’ll do a bit of reading on materialized view functionality before actually implementing anything.
Re:Ask HN: 120M rows Postgres – how can I speed up queries? by gigatexal on Friday November 08, 2019 @01:30PM (#21485207)
Again not my idea. It was suggested to me in response to the very problem you’re having. I’m just so happy to have it as an idea that I didn’t want to keep it to myself. Here’s the link. https://hashrocket.com/blog/posts/materialized-view-strategi...
Re:Ask HN: 120M rows Postgres – how can I speed up queries? by gigatexal on Friday November 08, 2019 @12:27PM (#21484493)
I have a link somewhere I’ll find it