explain select * from parts WHERE company_id = 12;
Seq Scan on parts (cost=0.00..6685241.40 rows=190478997 width=223) Filter: (company_id = 12)
That should be due to not running VACUUM and ANALYZE. Did you VACUUM ANALYZE and see if the query is picking up the Index. This is possible if "company_id" has unique values.