UMaterialInstanceConstant versus UMaterialInstanceDynamic

What is the difference between UMaterialInstanceConstant and UMaterialInstanceDynamic? I had an idea in my head that the latter can have its properties changed at runtime and that was the only difference.

I’m creating UMaterialInstanceDynamics and packaging and saving them but they’re not persisting between editor loads. Would UMaterialInstanceConstant fix this?