A RAM access is always (*) faster than a real disk access...
Times depend of your hardware but for a small amount of data, A RAM access is a matter of ns while an USB access can range from tens of µs to milliseconds. That’s not specific to USB though: a RAM access is faster than an SSD access. That’s even more true in comparison to an USB access.
Another interesting thing to note is that the access time is not proportional to the size of data. This is especially true for the first megabytes (partially due to caches). So, the more you can read at once the better will your performances be.
Finally, when your data is stored in RAM, the most used data is cached resulting in even lower latency times.
Therefore, whenever it's possible, you should read the data at once and store it in RAM to subsequent accesses.
(*) The only limit for this rule is the size of your RAM. If your computer uses more RAM ram that it physically has, the extra data will be swapped, that is, the least accessed data will be transferred to your physical disk and retrieves when needed. This will obviously result in catastrophic performances.
In conclusion, read a huge amount at once, but no more than you have space in RAM to store it. Reading more than 1G at a time won’t significantly improve performances and can only cause trouble.
mmap()
? – Galer