Я имею дело с csv-файлами, которые обычно имеют от 2 до 5 миллионов строк. У меня (например) 3000 специальных значений, которые необходимо заменить на 3000 разных значений. У меня есть два массива из 3000 элементов, называемых $ search и $ replace. Примечание. Поиск и замена фраз - это полные значения (например, ..., поиск, ... -> ..., замена, ...). Кроме того, я в конечном итоге импортирую это в базу данных mysql.php - Что быстрее для поиска и замены в csv-файле? В строке или в массиве?
Какой был бы самый эффективный/быстрый способ выполнить это?
Загрузить все содержимое файла CSV в строку и запустить str_replace, используя массивы и строки
Загрузите файл CSV в массивы и использовать array_search(), чтобы заменить значения
Загрузите файл CSV в базу данных MySQL, а затем поиск и замена с использованием запросов
Использование Python вместо
Другого
Я знаю, что может настроить некоторые тесты и сравнить их автономную работу, но я еще ищу, чтобы понять, почему один лучше, чем другие, или механизм, с помощью которого они ищут (например: O (n), двоичный поиск и т. д.?)
Большое спасибо за предложения! Я также согласен с тем, что, по моему опыту, лучше обрабатывать данные с помощью php вместо импорта, а затем через mysql. Хотя я знаю, что много памяти, я знаю, что машина, на которой работает этот скрипт, имеет достаточно памяти для этой задачи, не используется ни для чего, кроме этой задачи, и будет запускать только одну задачу за раз. Таким образом, я изначально использовал ваш метод линии за строкой (в памяти, строки, хранящиеся в массиве, взорвались и развязали, чтобы управлять им), но я не знал, будет ли str_replace в данных как целая строка быстрее в памяти или нет , –