vBulletin Search Engine Optimization
| |||||||
| Register | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| hi! I wonder if clustering a table improves perfs somehow ? Any example/ideas about that ? ref : http://www.postgresql.org/docs/8.2/i...l-cluster.html thx, P. ---------------------------(end of broadcast)--------------------------- TIP 4: Have you searched our list archives? http://archives.postgresql.org |
| |||
| On 9/13/07, Patrice Castet <pcastet@agematis.com> wrote: > I wonder if clustering a table improves perfs somehow ? As I understand it, clustering will help cases where you are fetching data in the same sequence as the clustering order, because adjacent rows will be located in adjacent pages on disk; this is because hard drives perform superbly with sequential reads, much less so with random access. For example, given a table foo (v integer) populated with a sequence of integers [1, 2, 3, 4, ..., n], where the column v has an index, and the table is clustered on that index, a query such as "select v from foo order by v" will read the data sequentially from disk, since the data will already be in the correct order. On the other hand, a query such as "select v from foo order by random()" will not be able to exploit the clustering. In other words, clustering is only useful insofar as your access patterns follow the clustering order. Alexander. ---------------------------(end of broadcast)--------------------------- TIP 4: Have you searched our list archives? http://archives.postgresql.org |
| ||||
| pcastet@agematis.com (Patrice Castet) writes: > I wonder if clustering a table improves perfs somehow ? > Any example/ideas about that ? > ref : http://www.postgresql.org/docs/8.2/i...l-cluster.html Sometimes. 1. It compacts the table, which may be of value, particularly if the table is not seeing heavy UPDATE/DELETE traffic. VACUUM and VACUUM FULL do somewhat similar things; if you are using VACUUM frequently enough, this is not likely to have a material effect. 2. It transforms the contents of the table into some specified order, which will improve efficiency for any queries that use that specific ordering. -- output = reverse("moc.enworbbc" "@" "enworbbc") http://linuxdatabases.info/info/emacs.html "You can swear at the keyboard and it won't be offended. It was going to treat you badly anyway" -- Arthur Norman |