- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Нужно конвертировать из DBF в MySQL большой объем данных (2-3Гб). Тулза DBFToMySQL с гитхаба работает слишком медленно. Кто-то знает еще какие-то методы?
Эта утиль PHP, на сколько я понял?
При выполнении посмотрите загрузку, вполне может статься, что работает в пол силы.
Эта утиль PHP, на сколько я понял?
При выполнении посмотрите загрузку, вполне может статься, что работает в пол силы.
Судя по быстродействию, там не в пол, а где-то в 0.5% силы. Примерно 10000 строк в минуту.
Для PHP есть варианты повышения производительности, порой радикально.
Искать по "php cli performance tuning"
Ну в общем проблема оказалась в том что по пхп не существует библиотек, которые осуществляют последовательную итерацию строк из dbf файла, а все библиотеки только умеют выбирать из файла i-ю строку, что в файле данной структуры очень медленно.
Задачу удалось решить с помощью библиотеку dbfpy под python в котором как-раз и есть такая последовательная итерация.
Ну в общем проблема оказалась в том что по пхп не существует библиотек, которые осуществляют последовательную итерацию строк из dbf файла
странно, что не нашлось быстрых "импортеров".
насколько я помню, давно с ними работал, в формате dbf3-dbf4 фиксированная длинна одной записи(в пределах одного файла). возможно засада будет на полях memo - не помню и вспоминать не хочу. :)
но в простейшем случае можно:
1. прочитать заголовок и вычислить длинну записи
2. установить указатель чтения на первую занись и дальше обычное потоковое чтение файла порциями "длинна записи" * "кол-во записей" (т.е. к примеру читать по 1-5тыс записей в память и затем одним инсертом забрасывать эти 1-5тыс записей в sql сервер)
это должно отработать очень быстро.
насколько я помню, давно с ними работал, в формате dbf3-dbf4 фиксированная длинна одной записи(в пределах одного файла). возможно засада будет на полях memo - не помню и вспоминать не хочу.
Не. Мемо - там во внешних файлах хранится. А засада в том, что формат поддерживает хранение в одном файле, НЕСКОЛЬКИХ вариантов одной строки, из которых по спецификации действительным является значение с максимальным значением некоего внутреннего счетчика. Из-за этого позицию i-й строки по формуле вычислить нельзя.