Как обработать синтаксический анализ большого файла XML и сохранить его в базе данных - PullRequest
3 голосов
/ 08 марта 2011

У меня довольно большой XML-файл (больше 2 МБ), который я анализирую и храню в базе данных sqlite.Я могу разобрать и сохранить в первый раз нормально.Мой вопрос касается обновления базы данных, когда я хочу снова проанализировать XML-файл (для изменений, дополнений или удалений).Моя первоначальная мысль - просто стереть информацию в базе данных и выполнить вставку снова, а не анализировать данные, проверить, есть ли данный элемент в базе данных и выполнить обновление.Есть ли подход, который лучше другого?Будет ли выступление так или иначе?Буду признателен за любые мысли по этому вопросу.

Ответы [ 2 ]

2 голосов
/ 08 марта 2011

Да, повторная вставка, вероятно, плохая идея.Насколько сложна структура xml, сколько таблиц задействовано, когда вы запрашиваете существование одного элемента, который отражается в структуре?

Если это сложно, вы можете создать контрольную сумму ваших записей или хэш некоторых атрибутов и значений, которые однозначно идентифицируют запись, и сохранить эту хэш / контрольную сумму в дополнительной таблице в БД, когда вы посмотритедля измененных записей вы просто вычисляете хэш / контрольную сумму и ищите его в одной таблице.Может быть, это даже делает запросы быстрее, в зависимости от того, насколько дорогим является вычисление хеша.

2 голосов
/ 08 марта 2011

Вставка только того, что необходимо изменить, несомненно, будет быстрее, чем выгрузка всей БД и повторная вставка. По крайней мере, так я думаю.

Я полагаю, это зависит от того, насколько сложна информация, с которой вы проверяете, и от того, насколько эффективен ваш код для выполнения этого процесса. Если вам неудобно проводить такую ​​проверку, тогда более безопасный вариант - сброс и повторная вставка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...