Sanchez
Новичок
Вставить в БД данные из большого файла за приемлемое время
Привет, есть XML-прайс, который генерит 1-с. Структура такова: сначала идут теги с ценой и ID, затем - тем же ID и названием, затем - тем же ID и производителем. Нужно вставить данные из файла в базу данных.
Сначала сделал в лоб - для цены и ID - INSERT, а потом для названия - UPDATE по тому ID, потом для производителя - UPDATE по тому же ID. Но конечно работает ужасно медленно (там около 10.000 записей). бОльшую часть времени съедают апдейты.
Пока думаю сделать так: предварительно данные собрать в самом скрипте, т.е. например через массив - составил его в том месте, где был INSERT, затем вместо апдейтов - дополнить данными (названием и производителем), предварительно отсортировав, чтоб можно было искать ID двоичным поиском. А затем уже перебирая массив, строить Инсерты, и вставлять данные в БД. Таким образом избавляемся от части, съедающей 99% времени - апдейтов.
Но может есть более красивое решение?
Привет, есть XML-прайс, который генерит 1-с. Структура такова: сначала идут теги с ценой и ID, затем - тем же ID и названием, затем - тем же ID и производителем. Нужно вставить данные из файла в базу данных.
Сначала сделал в лоб - для цены и ID - INSERT, а потом для названия - UPDATE по тому ID, потом для производителя - UPDATE по тому же ID. Но конечно работает ужасно медленно (там около 10.000 записей). бОльшую часть времени съедают апдейты.
Пока думаю сделать так: предварительно данные собрать в самом скрипте, т.е. например через массив - составил его в том месте, где был INSERT, затем вместо апдейтов - дополнить данными (названием и производителем), предварительно отсортировав, чтоб можно было искать ID двоичным поиском. А затем уже перебирая массив, строить Инсерты, и вставлять данные в БД. Таким образом избавляемся от части, съедающей 99% времени - апдейтов.
Но может есть более красивое решение?