Моё мнение: если важно как можно быстрее завершить основной скрипт, а время обработки не важно, то данные лучше класть не в базу, а в лог-файл. Например, при помощи команды: error_log("data", 3, "filename");
Это сработает намного быстрее, чем "коннект к БД" + "INSERT".
При желании в лог можно положить и какие-то "сложные данные", типа массивов или объектов, только предварительно сериализуйте их. Во многих случаях это потом облегчит обработку лога.
Я, конечно, не призываю специально создавать объекты или массивы, только для того чтобы положить их в лог. Как правило, они уже у вас есть на тот момент, когда возникла необходимость их сохранить. Просто сериализуем их и кладем в лог "как есть", а "разбор полетов" начинаем уже после извлечения данных из лога.
Исключением для такого подхода могут быть только ситуации, когда в лог попадает много "лишних данных". Тогда лучше данные специально готовить "под лог".
Если побеспокоится о том чтобы в логгируемых данных не было переводов строк (например, предварительно заменить их на сочетание '\n') и каждую новую запись в лог делать с новой строки, то анализ лога станет вообще простой процедурой - команда file ("filename") вернет нам удобный массив. В цикле десериализуем каждый его элемент и выполняем необходимые действия.
Если Вы считаете, что такие действия сильно замедлят подготовку лога - просто вставляйте разделительные маркеры перед или после каждой логгируемой записи. Это конечно замедлит парсинг лога, но упростит его подготовку.
И последнее замечание - побеспокойтесь о том, чтобы пока идёт анализа сформированного лога, новые данные могли записываться в новый лог.
Тут советы могут быть разные, но я предпочитаю перед началом анализа, файл лога переименовывать, а по окончанию - удалять переименованный файл. Это позволяет в случае каких-то ошибок, возникающих при анализе - не потерять данные.