我已经使用 Google App Engine 部署了一个 Django 网站,并且正在使用命令
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 Mbps),加载到数据存储区也需要非常长的时间(几分钟)。
最重要的是,在加载它之后,我检查了 Google App Engine 上的仪表板,它说我已经对数据存储执行了 04 万次写入操作。根据我的计算,鉴于上面有 21 个字段,加上 1 个用于 pk,乘以 478 个模型实例,我应该只执行大约 10K 写入,而不是 40K。
是否因为我使用 django-dbindexer 为 first_name 和 last_name 字段添加索引而发生了额外的写入?如果是这样,这就是为什么加载我的数据需要这么长时间吗?