Standard Bloom Filters needs to know the number of different elements in data set in order to determine the optimal number of hash functions.However
the data distribution information is not easy to obtain prior.This paper proposes a multi-stage dynamic optimization for Bloom Filters hash functions number (MDBF).It splits element insertion procedure into several stages
and in each stage of element insertion
MDBF decides the optimal hash function number by analyzing the inserted data distribution with bit vector usage situation.The experimental results show that MDBF can select the optimal number of hash functions to obtain low false positive probability in complicated applications
which have element multiplicity and skewed distribution.