Я развернул веб-сайт Django с помощью Google App Engine и использую команду
python manage.py remote loaddata my_data.yaml
для заполнения хранилища исходными данными из файла фикстуры в формате yaml. Вот образец моего файла yaml:
- fields: {team: 10, first_name: Jeff, last_name: Adrien, age: 25, pos: SF, gp: 8, mp: 63,
fg: 7, fga: 16, ft: 7, fta: 12, three_pointers: 0, threes_attempted: 0, orb: 5, drb: 17,
ast: 1, stl: 0, blk: 2, tov: 2, pf: 13, pts: 21
}
model: players.player
pk: 1
- fields: {team: 7, first_name: Arron, last_name: Afflalo, age: 26, pos: SG, gp: 62, mp: 2086,
fg: 329, fga: 699, ft: 197, fta: 247, three_pointers: 88, threes_attempted: 221, orb: 40,
drb: 157, ast: 149, stl: 36, blk: 13, tov: 85, pf: 134, pts: 943
}
model: players.player
pk: 2
Общий размер файла yaml примерно в 20 раз больше (это pk: 478). Я не думал, что это так много, но загрузка в хранилище данных занимает невероятно много времени (несколько минут), хотя у меня довольно быстрое сетевое соединение (1 Мбит / с).
Кроме того, после загрузки я проверяю панель инструментов Google App Engine, и там говорится, что я выполнил 0,04 миллиона операций записи в хранилище данных. По моим расчетам, учитывая, что у меня есть 21 поле выше, плюс одно для pk, умноженное на 478 экземпляров модели, я должен выполнять только около 10K операций записи, а не 40K.
Произошла ли дополнительная запись из-за того, что я использую django-dbindexer для добавления индексов для полей first_name и last_name? И если да, то почему загрузка моих данных занимает так много времени?