Способы решения:
1. читаем из файла всегда
2. читаем 1 раз, храним где либо:
2.1. в БД
2.2. в xml или csv
2.4. в json
2.5. в виде пхп кода
Для того чтобы ответить на вопрос, нужно знать следующее:
1. как часто читается файл после обновления, насколько это критично чтобы работало быстро ?
2. Размер файла
3. Как именно читается - нужно читать все строки из него, или всего несколько?
4. Что с файлом дальше делается ? Например если после чтения выводим просто хтмл реестр, то почему бы его сразу не готовить, и не хранить его?
5. Ссколько много времени на разработку.
Простой пример кейса:
система уже работает, файл читается 1-2 раза в неделю.
В данный момент из оригинального файла читается около секунды
Особых лагов нет.
На разботку метода конвертация уйдёт 1-2 дня.
=> Выгоды нет по замене
Другой пример:
1. файл читается каждый раз раз в секунду.
2. из файла нужно 1-10 строк всего, по номеру
3. В файле миллионы строк
=> лучше хранить в базе обычно.
третий пример:
1. файл читается каждый раз раз в секунду.
2. файл нужен всегда весь
3. В файле миллионы строк
=> лучше хранить в пхп коде
Т.е. способы хранения данных таковы:
1. БД
+ быстрая выборка, когда нужно несколько элементов из миллиона
+ можно использвоать в качестве данных для других запросов (джойны и тп)
- временные издержки
2. XML/CSV
+ можно использовать как есть, если нужен этот формат для чего либо другого.
- очень "дорого" парсить файл каджый раз.
Не рекомендую если нет особых причин
3. JSON
+ Относительно быстро
+ удобно хранить
+ на некоторых данных быстрее чем ПХП (что странно)
- надо парсить, опкешеры не помогают
- невозможно брать только часть элементов. Если нужно 10 строк из миллиона, то придётся брать весь миллион в память.
4. PHP
Тут я имею в виду: хранить через var_export и подключать через require/include
Обязательно: чтобы был APC/opcache
+ быстро
+ удобно хранить. обрабатывать. Получаешь сразу же массив
- невозможно брать только часть элементов. Если нужно 10 строк из миллиона, то придётся брать весь миллион в память.
- иногда JSON быстрее
Что вам выбрать лучше - сложно сказать, вы не предоставили достаточно данных.
Я бы взял PHP или БД, в зависимости от ситуации.