How do I speed up the process of redrawing layers in a MXD?
I have already tried reloading and indexing the layers.
The layers were created from shapefiles.
If you don't need to edit or change symbology in your layers (too often), you can use Basemap layers. It will keep the data in-memory after drawing it for the first time.
But, as mentioned, the price to pay is that the only thing you can do with a layer in a Basemap layer group is turn it on or off. Everything else is disabled.
Another thing you can do is to save all your data on disk instead of a remote server, if you haven't already done so.
Some points to improve display performance of vector data:
Turn labeling off.
use display range for labels and annotations
Use label classes to display only a subset of features with Labels.
Using of label weight will decrease Performance
Label expressions decrease performance
Annotations are faster than labels
Store annotations in Geodatabases, not in MXD
I recommend the use of a file geodatabase. This clearly improves the speed at which the layers are drawn.