Can you keep data files compressed as XZ, bzip2 or GZ? This should speed up reading by reduced disk I/O time. Also, backups etc will be quicker. As data is read more often than it is written. Best to be read efficient with fast-reduced I/O and reduced storage.
XZ provides best compression and supports random access file also https://tukaani.org/xz/xz-javadoc/org/tukaani/xz/SeekableXZInputStream.html