Вы можете хранить список в памяти, используя функцию PHP, такую как APC, и время от времени записывать его на диск. Таким образом, вы читаете его только тогда, когда его нет в памяти.
Если вы хотите ориентироваться на производительность, хранение этой информации в формате CSV, вероятно, не самое лучшее для начала. Если вы не хотите использовать настоящую RDMS (MySQL), я бы предложил использовать SQLite. Он предоставляет все функции, которые вы ищете (ОБНОВЛЕНИЕ) в этом случае, и действует точно так же, как CSV, в том смысле, что это просто файл на вашем жестком диске и не имеет параллелизма.
Если это не вариант, другой способ - использовать команды уровня оболочки, такие как sed & awk, для внесения изменений в регулярные выражения. Наконец, чтение всего файла в строку, выполнение мерзкой корректировки регулярного выражения (s///
) и последующее его повторное запись будет работать