You can use polygroups. At the lowest subdivision level of your mesh, define multiple polygroups by isolating polygons and using the 'group visible' command. Once you have finished with polygroups, press the 'groups split' button ('tool' > 'subtool' > 'split' > 'groups split').
You can also split using masking or hiding part of the model. If the components aren't joined together, you can just use split to parts and it'll make every component into a new subtool.
You can delete the undo history (before saving the file) by going in the menu bar > 'edit' > 'tool' > and pressing 'deluh'. Alternatively, you can disable it entirely for the current project by going in the menu bar > 'file' > and turning off 'undohistory'. Doing one of these operations should reduce your file size. However, here is the official documentation about this topic.
Replies
In this instance I typically mask the areas I want to split> duplicate> hide> delete hidden> select duplicate> inverse mask> hide> delete hidden.
How do I do this process without data loss?