Сохранение большого набора данных в PHP

Я работаю в правительственной организации, которая медленно разрабатывает базы данных;-) Мне нужен способ эффективного извлечения и фильтрации до 1,2 гига данных в качестве краткосрочного решения в процессе разработки базы данных. Безопасность потоков не является проблемой, поскольку данные доступны только для чтения. Данные представляют собой архив дорожно-транспортных происшествий / событий.

  • Я не хочу читать 1,2 гигабайта данных с диска в память для каждого HTTP-запроса.
  • Я не хочу использовать сеанс PHP, потому что он хранит данные на диске и (насколько я знаю) сохраняет данные только для одного сеанса браузера. Это привело бы к сохранению копии 1,2 гигабайта данных для каждого сеанса.
  • Я хочу, чтобы данные сохранялись в памяти (по соображениям производительности) и были доступны для всех запросов, обрабатываемых сценарием PHP.
  • Данные читаются с диска в формате JSON и, вероятно, будут храниться в ассоциативном массиве PHP.
  • Я занимаюсь разработкой на сервере Windows.

Я подумал о разработке.NET Windows Service и подключении к нему с помощью CURL для получения данных. Я читал о запуске сценария PHP в качестве службы Windows. Отличным решением может быть использование постоянной памяти в PHP-скрипте, обрабатывающем HTTP-запросы, но я видел только то, как это используется, - в написании пользовательских расширений PHP на C, и я не заинтересован в быстрой работе решение Я смотрел на Redis и Memcached, но, похоже, они не предназначены для больших наборов данных и не работают в Windows.

Любые идеи о том, как я могу эффективно фильтровать эти данные? Пример запроса может быть "дать мне все события, которые были активны в период с 1 января 2010 года по 15 марта 2013 года".

0 ответов

Другие вопросы по тегам