Re: Hash partitioning.
От
Markus Wanner
Тема
Re: Hash partitioning.
Дата
Msg-id
51CC38B6.5000908@bluegap.ch
Ответ на
Re: Hash partitioning. (Nicolas Barbier)
Список
Дерево обсуждения
Hash partitioning. "Yuri Levinsky" <yuril@celltick.com>
Re: Hash partitioning. Bruce Momjian <bruce@momjian.us>
Re: Hash partitioning. "Yuri Levinsky" <yuril@celltick.com>
Re: Hash partitioning. Bruce Momjian <bruce@momjian.us>
Re: Hash partitioning. Robert Haas <robertmhaas@gmail.com>
Re: Hash partitioning. Bruce Momjian <bruce@momjian.us>
Re: Hash partitioning. Robert Haas <robertmhaas@gmail.com>
Re: Hash partitioning. Bruce Momjian <bruce@momjian.us>
Re: Hash partitioning. Tom Lane <tgl@sss.pgh.pa.us>
Re: Hash partitioning. Bruce Momjian <bruce@momjian.us>
Re: Hash partitioning. Robert Haas <robertmhaas@gmail.com>
Re: Hash partitioning. "Yuri Levinsky" <yuril@celltick.com>
Re: Hash partitioning. Alvaro Herrera <alvherre@2ndquadrant.com>
Re: Hash partitioning. Christopher Browne <cbbrowne@gmail.com>
Re: Hash partitioning. Tom Lane <tgl@sss.pgh.pa.us>
Re: Hash partitioning. "Yuri Levinsky" <yuril@celltick.com>
Re: Hash partitioning. Heikki Linnakangas <hlinnakangas@vmware.com>
Re: Hash partitioning. Tom Lane <tgl@sss.pgh.pa.us>
Re: Hash partitioning. "Yuri Levinsky" <yuril@celltick.com>
Re: Hash partitioning. Heikki Linnakangas <hlinnakangas@vmware.com>
Re: Hash partitioning. Bruce Momjian <bruce@momjian.us>
Re: Hash partitioning. Claudio Freire <klaussfreire@gmail.com>
Re: Hash partitioning. Jeff Janes <jeff.janes@gmail.com>
Re: Hash partitioning. Claudio Freire <klaussfreire@gmail.com>
Re: Hash partitioning. "Yuri Levinsky" <yuril@celltick.com>
Re: Hash partitioning. Nicolas Barbier <nicolas.barbier@gmail.com>
Re: Hash partitioning. Markus Wanner <markus@bluegap.ch>
Re: Hash partitioning. Nicolas Barbier <nicolas.barbier@gmail.com>
Re: Hash partitioning. Markus Wanner <markus@bluegap.ch>
Re: Hash partitioning. Jeff Janes <jeff.janes@gmail.com>
Re: Hash partitioning. Jeff Janes <jeff.janes@gmail.com>
Re: Hash partitioning. Nicolas Barbier <nicolas.barbier@gmail.com>
Re: Hash partitioning. Ants Aasma <ants.aasma@eesti.ee>
Re: Hash partitioning. Claudio Freire <klaussfreire@gmail.com>
Re: Hash partitioning. Claudio Freire <klaussfreire@gmail.com>
Re: Hash partitioning. Kevin Grittner <kgrittn@ymail.com>
Re: Hash partitioning. Bruce Momjian <bruce@momjian.us>
Re: Hash partitioning. Markus Wanner <markus@bluegap.ch>
Re: Hash partitioning. Kevin Grittner <kgrittn@ymail.com>
Re: Hash partitioning. Heikki Linnakangas <hlinnakangas@vmware.com>
Re: Hash partitioning. Markus Wanner <markus@bluegap.ch>
Re: Hash partitioning. "Yuri Levinsky" <yuril@celltick.com>
Re: Hash partitioning. Jeff Janes <jeff.janes@gmail.com>
Re: Hash partitioning. Markus Wanner <markus@bluegap.ch>
Re: Hash partitioning. "ktm@rice.edu" <ktm@rice.edu>
Re: Hash partitioning. Markus Wanner <markus@bluegap.ch>
Re: Hash partitioning. Bruce Momjian <bruce@momjian.us>
Re: Hash partitioning. "Yuri Levinsky" <yuril@celltick.com>
Re: Hash partitioning. Markus Wanner <markus@bluegap.ch>
Re: Hash partitioning. Jeff Janes <jeff.janes@gmail.com>
Re: Hash partitioning. Claudio Freire <klaussfreire@gmail.com>
On 06/27/2013 11:12 AM, Nicolas Barbier wrote: > Imagine that there are a lot of indexes, e.g., 50. Although a lookup > (walking one index) is equally fast, an insertion must update al 50 > indexes. When each index requires one extra I/O (because each index is > one level taller), that is 50 extra I/Os. In the partitioned case, > each index would require the normal smaller amount of I/Os. Choosing > which partition to use must only be done once: The result “counts” for > all indexes that are to be updated. I think you're underestimating the cost of partitioning. After all, the lookup of what index to update for a given partition is a a lookup in pg_index via pg_index_indrelid_index - a btree index. Additionally, the depth of an index doesn't directly translate to the number of I/O writes per insert (or delete). I'd rather expect the avg. number of I/O writes per insert into a b-tree to be reasonably close to one - depending mostly on the number of keys per page, not depth. > Additionally: Imagine that the data can be partitioned along some > column that makes sense for performance reasons (e.g., some “date” > where most accesses are concentrated on rows with more recent dates). > The other indexes will probably not have such a performance > distribution. Using those other indexes (both for look-ups and > updates) in the non-partitioned case, will therefore pull a huge > portion of each index into cache (because of the “random distribution” > of the non-date data). In the partitioned case, more cache can be > spent on the indexes that correspond to the “hot partitions.” That's a valid point, yes. I'd call this index partitioning. And with partial indices, Postgres already has something that gets pretty close, I think. Though, I don't consider this to be related to how the tuples of the relation are laid out on disk. Regards Markus Wanner
В списке pgsql-hackers по дате отправления
От: Robert Haas
Дата: