4 ms·
It sounds like this is column level partitioning.Each column or columns (based on partitioning expression) is stored as different subtable (or something similar
by sapling 10y ago
It sounds like this is column level partitioning.Each column or columns (based on partitioning expression) is stored as different subtable (or something similar) on disk.If only few columns are frequently accessed, they can be put on cache/faster disk or other neat optimizations for join processing.
- MarHoff 10y agoMaybe I don't get you, but i don't think so, PostgreSQL is not a columnar database. If i got this patch right, each partitioned table will have the same data structure and store whole rows (it's even more restrictive than previous inheritance mechanism that allowed extending by adding additional columns). Column or expression should only define in which table an inserted row is supposed to be stored. A single row will never been torn apart. Still it look like a foundation that facilitate sharding BigData(Set) between multiple servers when used in conjunction with foreign data. However a lot of performance improvements will still be needed to compete against solid NoSQL projects (in which you really have a BigData use case). But looking a bit forward, developing performances improvements on top of an ACID compliant distributed database seems less difficult than to develop a NoSQL project for it to become ACID.
- spacemanmatt 10y agoGenerally PostgreSQL is a row database but Citus has release column drivers that make it perform similar to other columnar databases. But this patch is about horizontal partitions.
- lobster_johnson 10y agoNo, it's row-level partitioning — splits a single logical table into multiple physical tables.
- colanderman 10y agoIt is not. The partitions are by row. The novelty is in that it is truly native support, rather than a couple optimizations to make roll-your-own palatable.
- sapling 10y agoSorry I am wrong.I saw the PARTITION BY {column name} and lazy me assumed things.
- sapling 10y agoI was wrong.It isn't column partitioning.