Para velocidad y uso de memoria optimizado, yo diría que ir con una base de datos sin duda alguna. Poner un índice solo en la columna de nombre probablemente aumentará el rendimiento de una manera que nunca se puede lograr con un archivo de texto.
Una base de datos también tiene otras ventajas, como algo de saneamiento (no se rompen los delimitadores, las nuevas líneas, etc.) y menos peligro de conflictos de acceso cuando varias instancias intentan leer de la tabla y, a diferencia de un enfoque basado en archivos, los conflictos de escritura están restringidos a la registro en cuestión solamente.