Как обойти большой json файл и обновить все связанные записи в MySQL, с отставанием от файла < 2 сек.?
Правильное решение - парсер должен сам сразу писать в БД.
Если это невозможно надо постараться максимально устранить накладки и двойные обработки:На каждую итерацию work.php отправляет ID в скрипт getEvent.php с помощью fsockopen.
... В getEvent.php опять же идет гет актуального JSON, декод и скрипт ищет в "events" ID, которое ему отправил work.php затем обрабатывает эти данные и обновляет их в базе MYSQL
Вот это что за хрень? Почему work.php не может сразу отправить данные getEvent? Зачем getEvent заново гетит JSON и заново ищет там ID?
А потом вы жалуетесь что:Оперативка кушается потому что в work.php каждые 2 секунды гетится json + в 600-800 открытых getEvent.php тоже гетится этот же json. чтобы они не отставали от данных в json файле более чем на 2 секунды.
И сколько гигабайт в вашем JSON что процесс не может его обойти и отправить мускул за 2 секунды?
При такой постановке - действительно ничего нельзя сделать. Просто он не предназначен для таких операций. Но хотя-бы первый раз его надо затянуть в базу. И всегда там хранить эти данные и там-же обрабатывать.