After some initial processing, a MIP solver works to construct a search tree and to carry out a branching search. The solver continues its branching search until it proves that the current best solution is within some "gap" tolerance of being optimal, or it is stopped by the user (such as through a time limit). Also during the whole branching search, heuristics are used to look for better solutions (and for making other decisions that affect the solver's efficiency).
Thus for a MIP solver, seeking an optimum (to within the gap tolerance) and applying heuristics (to find better solutions) go on at the same time throughout the run. This makes MIP solvers significantly different from meta-heuristics, which do not have the overhead of building a search tree, but cannot prove optimality (to within some gap tolerance). You can't tell which approach will be better for a particular application, except by trying both, but if there is a good MIP formulation then that may be the easier thing to try first.
It is also possible to use a MIP solver as a sort of meta-heuristic, by running it for a certain amount of time, and then accepting whatever was the best solution found before the time limit. There's some discussion of this in Gurobi's
MIP Models and Heuristics slides. Again it's hard to predict what approach will be better, but you probably want to start with whichever is easier.