2013-09-05 4 views
0

Я работаю над проектом, в котором я извлекаю данные из facebook о друзьях пользователя. Детали друзей меняются несколько раз, в то время как в других случаях они совпадают с хранимыми в db.sqlite insert vs update vs replace

Я могу использовать команду replace, чтобы убедиться, что db соответствует любой информации, которую я извлекаю из facebook.

Вопрос: насколько эффективна эта техника? Другими словами, я могу использовать два метода:

  • Один использовать команду замены и заменить полную запись вслепую
  • Во-вторых, сначала необходимо проверить, есть ли какие-либо отличия от записи сохраняются в БД и Обновлять только те изменения, которые были изменены

Какой из этих подходов будет более эффективным?

ответ

2

Я обнаружил, что очередность нескольких команд sqlite в ряду намного эффективнее, чем что-то другое между ними, даже просто сравнивая несколько значений.

Я настоятельно рекомендую вам просто выполнить команду обновления. SQLite работает быстро.

Мое наблюдение заключается в том, что SQLite всегда быстрее, чем я. Так что пусть он делает тяжелый подъем и просто сбрасывает данные на нем, и пусть он сортирует ваши обновления.

Например, я искал около 7000 записей. Я вытащил записи в массив, быстро проверил одно поле и разделил его на два массива. Это заняло у меня около 5 секунд. Я заменил его двумя отдельными запросами SQLite, каждый из которых должен был пройти через всю базу данных. Пересмотренный двойной запрос занимает около четверти секунды, как я могу судить, потому что он настолько сумасшедший.

У меня была схожая удача с обновлениями в моей большой базе данных.

+0

Что вы подразумеваете под «очередью нескольких команд sqlite в строке»? – MARK