Re: About partitioning
От | Adrian von Bidder |
---|---|
Тема | Re: About partitioning |
Дата | |
Msg-id | 201001201701.25689@fortytwo.ch обсуждение исходный текст |
Ответ на | Re: About partitioning (Vincenzo Romano <vincenzo.romano@notorand.it>) |
Ответы |
Re: About partitioning
|
Список | pgsql-general |
Hi, On Wednesday 20 January 2010 11.57:37 Vincenzo Romano wrote: > 2010/1/20 Adrian von Bidder <avbidder@fortytwo.ch>: > > [ creating db partitions on demand ] > > > > On Wednesday 20 January 2010 11.20:21 Vincenzo Romano wrote: > >> In case 1 I need to inspect the catalog with at least a select, while > >> in case 2 I need to trap errors. > >> In my (little) experience trapping errors is slow, so I would go for > >> option 1. > > > > Trapping/handling the error might be slow, but remember that creating a > > new partition (presumably) doesn't happen often (and creating the > > partition is slow anyway.) > Hmmm ... also trapping would happen for every single line being inserted Why? By "trapping" I mean: reacting to the error if the INSERT statement fails. If the INSERT does not fail, there is no error, so there is no error condition to handle. Compare: * query server to see if partition exists (!!! slow: this uses the database server) * if partition does not exist (this is almost never the case), create it * insert row Against: * try inserting (same speed as the final step above) * if (error) (this is fast, since it only uses the return value from the insert. No additional database action) -> then create partition (this, again, is slow but almost never happens) -> and then re-try the insert. cheers -- vbi -- featured link: Debian Bookmark Collection - http://bookmarks.debian.net/
Вложения
В списке pgsql-general по дате отправления: