On 9/7/2014 12:55 PM, Jeff Janes wrote:
On Fri, Sep 5, 2014 at 2:17 PM, John R Pierce <pierce@hogranch.com> wrote:
On 9/5/2014 10:31 AM, Cal Heldenbrand wrote:
Number of child tables: 1581
that's an insane number of children. We try and limit it to 50 or so child tables, for instance, 6 months retention by week, of data will millions of rows/day.
I've used more than that many for testing purposes, and there was little problem. The main thing is that your insert trigger (if you have one on the master table) needs to be structured as a binary search-like nesting of if..elsif, not a linear-searching like structure. Unless of course almost all inserts go into the newest partition, then it might make more sense to do the linear search with that being the first test. But for performance, better to just insert directly into the correct child table.
any select that can't be preplanned to a specific child will need to check all 1500 children. this is far less efficient than checking, say, 50 and letting the b-tree index of each child reject or narrow down to the specific row(s). The one is roughly 1500*log(N/1500) while the other is 50*log(N/50) at least to a first order approximation.
--
john r pierce 37N 122W
somewhere on the middle of the left coast