Conjunctive Normal Form (CNF) Boolean formulas generated from resolution or solution enumeration often have much redundancy. It is desirable to have an efficient algorithm to simplify and compact such CNF formulas on the fly. Given a clause in a CNF formula, if a subset of its literals constitutes another clause in the formula, then the first clause is said to be subsumed by the second clause. A subsumed clause is redundant and can be removed from the original formula. In this paper, we present a novel algorithm to maintain a subsumption-free CNF clause database by efficiently detecting and removing subsumption as the clauses are being added. Furthermore, we present an algorithm that compact the database greedily by recursively applying resolutions that decrement the size of the clause database. Our experimental evaluations show that these algorithms are efficient and effective in practice.