Entscheident ist, wann Du welche Menge an Daten lädst.
Du musst abwegen können, welche Daten einen schnellen Zugriff
benötigen und diese Daten dann in Dein Array packen, um den Zugriff
zu beschleunigen. Die Verbindung zur Datenbank geschieht lediglich ein
Mal, nämlich beim Start des Programms. Der Zugriff auf die Daten der
Datenbank ist allemal schneller als aus den 50000-1000000 Dateien zu
lesen, mal abgesehen vom Öffnen und Schließen der Dateien.
50000-1000000 verschiedene Dateien bedeuten 50000-1000000 verschiedene
Plattenzugriffe --> Das dauert. Ich kenne nicht die Daten in Deinen
Dateien, aber wenn ich das richtig verstehe und Du selbst sagst, dass es
Dir um Performace geht, dann solltest Du die Daten Deiner 50000-1000000
Dateien in eine einzige Datei packen. Dann kannst Du (Du hast ja gesagt,
dass Du die Daten zur gleichen Zeit benötigst) sie in Dein Array laden.
Bedenke aber, dass Dein Array niemals größer werden kann als der Dir
zur Verfügung stehende
RAM.