Naja, bei solchen großen Datenmengen ist ein Array auch sehr ineffizient.
Da würde ich dir mal vorschlagen, dass du dich mit Hashtabellen oder balancierte Bäume auseinandersetzt und diese implementierst, sofern Delphi dafür keine eigene Klasse parat hat.