Depending on the size of the individual records returned, I'd use a
decent size window (to minimize network and marshalling/unmarshalling
overhead) of maybe 1000-1 items sorted by id, and use that in
combination with cursorMark. That will be easier on the server side in
terms of garbage collect
Performance would be better getting them all at the same time, but the
behavior would kind of stink (long pause before a response, big results
stuck in memory, etc).
If you're using a relatively up-to-date version of Solr, you should check
out the "cursormark" feature:
https://wiki.apache.org/solr