Re: Partitioning / constrain exlusion not working with %-operator
От | Tom Lane |
---|---|
Тема | Re: Partitioning / constrain exlusion not working with %-operator |
Дата | |
Msg-id | 13552.1154349777@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Partitioning / constrain exlusion not working with %-operator (Martin Lesser <ml-pgsql@bettercom.de>) |
Ответы |
Re: Partitioning / constrain exlusion not working with %-operator
|
Список | pgsql-performance |
Martin Lesser <ml-pgsql@bettercom.de> writes: > I try to partition a large table (~ 120 mio. rows) into 50 smaller > tables but using the IMO immutable %-function constraint exclusion > does not work as expected: The constraint exclusion mechanism is not as bright as you think. There are some very limited cases where it can make a deduction that a WHERE clause implies a CHECK constraint that's not an exact textual equivalent ... but all those cases have to do with related b-tree operators, and % is not one. It's usually better to use partitioning rules that have something to do with the WHERE-clauses you'd be using anyway. For instance, try to partition on ranges of id1 instead of id1 % 50. That works because the CHECK clauses will be like "id1 >= x and id1 < y" and those operators are btree-related to the "id1 = z" clauses you'll have in the query. regards, tom lane
В списке pgsql-performance по дате отправления: