2 ms·
I am the primary author of this work. It's very hard to give a representative example, but I can give you a simple real-world example. The mouse genome databas
by petergeoghegan 7y ago
I am the primary author of this work. It's very hard to give a representative example, but I can give you a simple real-world example.
The mouse genome database is perhaps the only real world Postgres databases that is publicly available and isn't trivially small. It is available from http://www.informatics.jax.org http://www.informatics.jax.org. There are quite a number of publicly available datasets, of course, but this is specifically a raw pg_dump that includes indexes that are actually useful to the underlying application. A living, breathing database.
One of the test cases used during development involved restoring the dump, and then re-inserting the data with retail insertions (pristine indexes generated by CREATE INDEX are not very interesting). Something like the following, repeated for each table:
create table __foo (like foo including indexes);
insert into __foo select * from foo;
Afterwards, all of the indexes taken together (all indexes on all "__foo"-like tables) were about 15% smaller than they were when the same procedure was performed on a v11 Postgres. Since the database has many indexes on each table, the overall size of the database was reduced by about 10%.
That is only one anecdote, involving a database that happened to have a lot of indexes that each stored a lot of duplicates. And, this tells you nothing about how latency or throughput are affected for the application itself, which is usually much more interesting. Your mileage may vary, but this is what happened in the one real-world case that I actually tested. It was not cherry-picked.
Andres provided a link to some TPC-C benchmark results that I published, showing significant improvements despite the fact that that benchmark involves few or no duplicates in indexes. That's due to another specific issue with how we choose where to split leaf pages.
Overall, the best way to think of the v12 work is as something that fixes cases where Postgres previously didn't do so well. It makes performance more consistent overall.
- GordonS 7y agoThese are the kind of insights I was hoping for, thanks!
- isoprophlex 7y agoI'm extremely thankful for all the cool stuff thats being done on postgres. To me, it's the nr. 1 software where every new update brings super exciting things. Thanks for the efforts you're putting in.