We could certainly do with an in-depth response on this with some high-quality documentation, but while we're waiting, there have been some briefer answers in the past that have addressed the thrust of the question:
This has come up before on the sub and while more can always be said, here's a collection of threads by /u/Bentresh about the subject while you're waiting: