Currently export/import and staging essentially function the same way. This can cause serious performance issues when staging content with large rarely changing references (we are talking hours/days instead of minutes).
When a site is published it is exported and then imported. This makes publishing less efficient.
Publishing is a special case of exporting/importing because we know about the site being imported too. Because of that we can choose what to publish.
Export should continue to work like this:
- Export all content being exported
- Export all dependencies for the content
Publishing should work like this:
- Only export referenced content that has been updated(changed since last publish)
- Validate missing/updated dependencies
This will vastly improve performance of staging/publishing.
1. Upload a large file (100MB+)
2. Add some web content that references that file
3. Publish (should take a while)
4. Edit the web content
5. Publish (should take much less time since the file has already been published)