Developer sandbox
This sandbox is used mainly for the development process. It contains a copy of all the production metadata but no records at all (exceptions include users, for instance). Having no access to real production data allows administrators and developers to safely develop their features without worrying about how data should be handled.
The Developer sandbox can be refreshed from production once a day and it can hold up to 200 MB of data and 200 MB of file storage. This kind of sandbox is usually assigned to individual developers so that they are free to dismantle an organization without it having an impact on their colleagues.
Developer Pro sandbox
The Developer Pro sandbox differs from the Developer sandbox type regarding the amount of data and file storage that can be held, that is, 1 GB.
This type is generally used for global development environments, that is, a sandbox that conveys that all the developers work in a single organization (coming from different Developer sandboxes) and can be used for code base quality assurance (for example, running all Apex tests or validating cross-developer/admin implementations).
Partial Copy sandbox
This is used for testing purposes. It contains all the metadata from production but also a sample of its data, which will have been selected randomly. That’s why this type is useful for testing the borderline behavior of your implementation.
Partial Copy is often used for user acceptance tests, integration testing, and training. It conveys up to 5 GB of sample data and file storage and can be refreshed every five days.
When you create this kind of sandbox, you need to choose a sandbox template (on the Sandboxes page, click on the Templates tab):
Sandbox template creation
Select all the objects you want to be copied into the Partial Copy sandbox. Considering that Salesforce will copy up to 10K records per object type, up to a total of 5 GB, choose the records almost randomly (there is no way to tell Salesforce which category of records you want to be selected).
Full sandbox
This is the queen of all sandboxes as it reproduces the production environment. Indeed, this sandbox type can be used for performance testing. That being said, it is a full copy of production regarding both metadata and data, and it is aligned with production limits for file and storage quotas. The refresh time is 29 days. However, you can always apply a sandbox template to select the objects you want to be copied.
Why don’t you want all the data? There may be certain objects that are useless for your testing.
Copying GBs of data can be time-consuming and you should expect your sandbox creation/refresh time to take several days. The less you need to copy, the faster the copying process is.
When creating/refreshing a Full sandbox, Salesforce asks you what you want to do with field tracking information. You can decide not to include it (faster copy) or you can go up to 180 days back in time (chatter history can be very large).
Because of their nature, Full sandboxes are used for testing external integrations (as external systems expect real production data) or staging for the final validation of your team’s work or for production debugging.
For a quick and updated reference on sandboxes, please refer to Salesforce Help at https://help.salesforce.com/articleView?id=data_Sandbox_environments.htm&type=5.