Чтобы PostgreSQL при выборке не перебирал все партиции, нужно:
1. Cоздать CHECK constraint на каждой партиции. Пример:
ALTER TABLE table_2016_04 ADD CONSTRAINT c_table_2016_04
CHECK ( my_date >= '20160401'::date and my_date <= '20160430'::date );
2. В запросе на выборку указать условие, позволяющее выбрать нужные партиции по условию, указанному в CHECK constraint:
SELECT * FROM table WHERE my_date >= '20160401'::date and my_date <= '20160430'::date and "id"=110033
3. Возможно, выборку ещё ускорит индекс на table_2016_04 по полю id.