Hallo,
vielleicht die Daten aus der CSV-Datei schon mal im RAM cachen, so dass das langsame Einlesen das schnelle Durchsuchen nicht ausbremst.
Desweiteren wäre das IMHO eine Aufgabe die sich wunderbar parallelisieren lässt. Also bspw. irgendwie über Multithreading.
Viele Grüße